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.
- Abra um terminal e navegue até o diretório
/home/labex/project. - Crie um novo arquivo Python chamado
find_num.pyno diretório/home/labex/project.
cd /home/labex/project
touch find_num.py
- Abra o arquivo
find_num.pyem um editor de texto.
Importar os Módulos Necessários
Nesta etapa, você aprenderá como importar os módulos necessários para o projeto.
- 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.
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.
- 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.
Implementar a Lógica Principal
Nesta etapa, você aprenderá como implementar a lógica principal do script.
- 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.
Testar o Script
Nesta etapa, você aprenderá como testar o script com os exemplos fornecidos.
- Salve o arquivo
find_num.py. - 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.
Resumo
Parabéns! Você concluiu este projeto. Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.



