Extrair Informações de Parâmetros

PythonBeginner
Pratique Agora

Introdução

Neste projeto, você aprenderá como extrair números de um texto fornecido, calcular a média desses números e arredondar o resultado para duas casas decimais. Este projeto ajudará você a praticar o uso de expressões regulares e o tratamento de argumentos de linha de comando em Python.

👀 Pré-visualização

$ python3 ~/project/find_num.py "a11 b3.14c15 16"
11.29
$ python3 ~/project/find_num.py "a 5 b 6 c7 dd8 9"
7.00
$ python3 ~/project/find_num.py "ad1dg6dgd9dg4qwe10"
6.00

🎯 Tarefas

Neste projeto, você aprenderá:

  • Como usar expressões regulares para encontrar todos os números (inteiros e números de ponto flutuante) em um determinado texto
  • Como converter os números correspondentes de strings para floats
  • Como calcular a média dos números extraídos
  • Como formatar o resultado da média para duas casas decimais
  • Como lidar com argumentos de linha de comando em um script Python

🏆 Conquistas

Após concluir este projeto, você será capaz de:

  • Escrever um script Python que pode extrair números de um texto fornecido
  • Calcular a média dos números extraídos
  • Formatar o resultado da média para duas casas decimais
  • Executar o script a partir da linha de comando e passar o texto como um argumento

Configurar o Ambiente do Projeto

Nesta etapa, você aprenderá como configurar o ambiente do projeto e criar os arquivos necessários.

  1. Abra um terminal e navegue até o diretório /home/labex/project.
  2. Crie um novo arquivo Python chamado find_num.py no diretório /home/labex/project.
cd /home/labex/project
touch find_num.py
  1. Abra o arquivo find_num.py em um editor de texto.
✨ Verificar Solução e Praticar

Importar os Módulos Necessários

Nesta etapa, você aprenderá como importar os módulos necessários para o projeto.

  1. Adicione o seguinte código no início do arquivo find_num.py:
import re  ## Importa o módulo de expressões regulares
import sys  ## Importa o módulo sys para argumentos de linha de comando

Esses módulos serão usados para trabalhar com expressões regulares e lidar com argumentos de linha de comando.

✨ Verificar Solução e Praticar

Definir a Função Calcular Média

Nesta etapa, você aprenderá como definir uma função para calcular a média de números em um determinado texto.

  1. Adicione a seguinte função ao arquivo find_num.py:
def calculate_average(text):
    ## Use uma expressão regular (regular expression) para encontrar todos os números de ponto flutuante e inteiros no texto
    numbers = re.findall(r"[-+]?\d*\.\d+|\d+", text)
    ## Converte os números encontrados de strings para floats usando list comprehension
    numbers = [float(num) for num in numbers]
    ## Calcula a média desses números
    average = sum(numbers) / len(numbers)
    ## Formata a média com duas casas decimais
    average_formatted = "{:.2f}".format(average)
    return average_formatted

Esta função recebe um texto como entrada, usa uma expressão regular para extrair todos os números (tanto inteiros quanto de ponto flutuante) do texto, calcula a média desses números e formata o resultado para duas casas decimais.

✨ Verificar Solução e Praticar

Implementar a Lógica Principal

Nesta etapa, você aprenderá como implementar a lógica principal do script.

  1. Adicione o seguinte código ao arquivo find_num.py:
if __name__ == "__main__":
    ## Lê o texto a ser analisado dos argumentos da linha de comando (o primeiro argumento, sys.argv[1])
    text = sys.argv[1]
    ## Chama a função calculate_average com o texto fornecido
    average = calculate_average(text)
    ## Imprime a média calculada com duas casas decimais
    print(average)

Este código verifica se o script está sendo executado como o programa principal (if __name__ == "__main__":). Se sim, ele lê o texto a ser analisado dos argumentos da linha de comando (o primeiro argumento, sys.argv[1]), chama a função calculate_average com o texto fornecido e imprime a média calculada.

✨ Verificar Solução e Praticar

Testar o Script

Nesta etapa, você aprenderá como testar o script com os exemplos fornecidos.

  1. Salve o arquivo find_num.py.
  2. Execute o script com os exemplos fornecidos:
python3 /home/labex/project/find_num.py "a11 b3.14c15 16"
python3 /home/labex/project/find_num.py "a 5 b 6 c7 dd8 9"
python3 /home/labex/project/find_num.py "ad1dg6dgd9dg4qwe10"

A saída deve corresponder aos resultados esperados:

11.29
7.00
6.00

Parabéns! Você concluiu o projeto. O script que você criou agora pode extrair números de um determinado texto, calcular a média e arredondar o resultado para duas casas decimais.

✨ Verificar Solução e Praticar

Resumo

Parabéns! Você concluiu este projeto. Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.