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
Configurer l'environnement du projet
Dans cette étape, vous allez apprendre à configurer l'environnement du projet et à créer les fichiers nécessaires.
- Ouvrez un terminal et accédez au répertoire
/home/labex/project. - Créez un nouveau fichier Python nommé
find_num.pydans le répertoire/home/labex/project.
cd /home/labex/project
touch find_num.py
- Ouvrez le fichier
find_num.pydans un éditeur de texte.
Importer les modules requis
Dans cette étape, vous allez apprendre à importer les modules nécessaires pour le projet.
- 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éfinir la fonction de calcul de la moyenne
Dans cette étape, vous allez apprendre à définir une fonction pour calculer la moyenne des nombres dans un texte donné.
- 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émenter la logique principale
Dans cette étape, vous allez apprendre à implémenter la logique principale du script.
- 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.
Tester le script
Dans cette étape, vous allez apprendre à tester le script avec les exemples fournis.
- Enregistrez le fichier
find_num.py. - 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.
Résumé
Félicitations ! Vous avez terminé ce projet. Vous pouvez pratiquer plus de laboratoires sur LabEx pour améliorer vos compétences.



