Extraire des informations à partir de paramètres

PythonPythonBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce projet, vous allez apprendre à extraire les nombres d'un texte donné, à calculer la moyenne de ces nombres et à arrondir le résultat à deux décimales. Ce projet vous aidera à pratiquer le travail avec les expressions régulières et la gestion des arguments de ligne de commande en Python.

👀 Aperçu

$ 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

🎯 Tâches

Dans ce projet, vous allez apprendre :

  • Comment utiliser les expressions régulières pour trouver tous les nombres (entiers et flottants) dans un texte donné
  • Comment convertir les nombres correspondants de chaînes de caractères en flottants
  • Comment calculer la moyenne des nombres extraits
  • Comment formater le résultat de la moyenne à deux décimales
  • Comment gérer les arguments de ligne de commande dans un script Python

🏆 Réalisations

Après avoir terminé ce projet, vous serez capable de :

  • Écrire un script Python qui peut extraire les nombres d'un texte donné
  • Calculer la moyenne des nombres extraits
  • Formater le résultat de la moyenne à deux décimales
  • Exécuter le script à partir de la ligne de commande et passer le texte en tant qu'argument

Configurez l'environnement du projet

Dans cette étape, vous allez apprendre à configurer l'environnement du projet et à créer les fichiers nécessaires.

  1. Ouvrez un terminal et accédez au répertoire /home/labex/project.
  2. Créez un nouveau fichier Python nommé find_num.py dans le répertoire /home/labex/project.
cd /home/labex/project
touch find_num.py
  1. Ouvrez le fichier find_num.py dans un éditeur de texte.

Importez les modules requis

Dans cette étape, vous allez apprendre à importer les modules nécessaires pour le projet.

  1. Ajoutez le code suivant au début du fichier find_num.py :
import re  ## Importe le module d'expressions régulières
import sys  ## Importe le module sys pour les arguments de ligne de commande

Ces modules seront utilisés pour travailler avec les expressions régulières et gérer les arguments de ligne de commande.

Définissez la fonction de calcul de moyenne

Dans cette étape, vous allez apprendre à définir une fonction pour calculer la moyenne des nombres dans un texte donné.

  1. Ajoutez la fonction suivante au fichier find_num.py :
def calculate_average(text):
    ## Utilisez un motif d'expression régulière pour trouver tous les nombres à virgule flottante et entiers dans le texte
    numbers = re.findall(r"[-+]?\d*\.\d+|\d+", text)
    ## Convertissez les nombres correspondants de chaînes de caractères en flottants à l'aide de la compréhension de liste
    numbers = [float(num) for num in numbers]
    ## Calculez la moyenne de ces nombres
    average = sum(numbers) / len(numbers)
    ## Formattez la moyenne avec deux décimales
    average_formatted = "{:.2f}".format(average)
    return average_formatted

Cette fonction prend un texte en entrée, utilise une expression régulière pour extraire tous les nombres (entiers et à virgule flottante) du texte, calcule la moyenne de ces nombres et formate le résultat avec deux décimales.

Implémentez la logique principale

Dans cette étape, vous allez apprendre à implémenter la logique principale du script.

  1. Ajoutez le code suivant au fichier find_num.py :
if __name__ == "__main__":
    ## Lisez le texte à analyser à partir des arguments de ligne de commande (le premier argument, sys.argv[1])
    text = sys.argv[1]
    ## Appelez la fonction calculate_average avec le texte fourni
    average = calculate_average(text)
    ## Affichez la moyenne calculée avec deux décimales
    print(average)

Ce code vérifie si le script est exécuté en tant que programme principal (if __name__ == "__main__":). Si c'est le cas, il lit le texte à analyser à partir des arguments de ligne de commande (le premier argument, sys.argv[1]), appelle la fonction calculate_average avec le texte fourni et affiche la moyenne calculée.

Testez le script

Dans cette étape, vous allez apprendre à tester le script avec les exemples fournis.

  1. Enregistrez le fichier find_num.py.
  2. Exécutez le script avec les exemples fournis :
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"

La sortie devrait correspondre aux résultats attendus :

11.29
7.00
6.00

Félicitations ! Vous avez terminé le projet. Le script que vous avez créé peut désormais extraire les nombres d'un texte donné, calculer la moyenne et arrondir le résultat à deux décimales.

✨ Vérifier la solution et pratiquer

Sommaire

Félicitations ! Vous avez terminé ce projet. Vous pouvez pratiquer plus de laboratoires sur LabEx pour améliorer vos compétences.