Information aus Parametern extrahieren

PythonPythonBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Projekt lernst du, wie du Zahlen aus einem gegebenen Text extrahierst, den Mittelwert dieser Zahlen berechnest und das Ergebnis auf zwei Dezimalstellen rundest. Dieses Projekt hilft dir, mit regulären Ausdrücken und der Verarbeitung von Befehlszeilenargumenten in Python zu praktizieren.

👀 Vorschau

$ 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

🎯 Aufgaben

In diesem Projekt wirst du lernen:

  • Wie du reguläre Ausdrücke verwendest, um alle Zahlen (ganze Zahlen und Gleitkommazahlen) in einem gegebenen Text zu finden
  • Wie du die gematchten Zahlen von Strings in Gleitkommazahlen umwandelst
  • Wie du den Mittelwert der extrahierten Zahlen berechnest
  • Wie du das Mittelwert-Ergebnis auf zwei Dezimalstellen formatierst
  • Wie du Befehlszeilenargumente in einem Python-Skript verarbeitest

🏆 Errungenschaften

Nach Abschluss dieses Projekts wirst du in der Lage sein:

  • Ein Python-Skript zu schreiben, das Zahlen aus einem gegebenen Text extrahieren kann
  • Den Mittelwert der extrahierten Zahlen zu berechnen
  • Das Mittelwert-Ergebnis auf zwei Dezimalstellen zu formatieren
  • Das Skript von der Befehlszeile aus auszuführen und den Text als Argument zu übergeben

Projektsumgebung einrichten

In diesem Schritt lernst du, wie du die Projektsumgebung einrichtest und die erforderlichen Dateien erstellst.

  1. Öffne ein Terminal und navigiere zum Verzeichnis /home/labex/project.
  2. Erstelle in dem Verzeichnis /home/labex/project eine neue Python-Datei namens find_num.py.
cd /home/labex/project
touch find_num.py
  1. Öffne die Datei find_num.py in einem Texteditor.

Importiere die erforderlichen Module

In diesem Schritt lernst du, wie du die erforderlichen Module für das Projekt importierst.

  1. Füge den folgenden Code am Anfang der Datei find_num.py hinzu:
import re  ## Importiere das Modul für reguläre Ausdrücke
import sys  ## Importiere das sys-Modul für Befehlszeilenargumente

Diese Module werden verwendet, um mit regulären Ausdrücken zu arbeiten und Befehlszeilenargumente zu verarbeiten.

Definiere die Funktion zum Berechnen des Mittelwerts

In diesem Schritt lernst du, wie du eine Funktion definierst, um den Mittelwert von Zahlen in einem gegebenen Text zu berechnen.

  1. Füge die folgende Funktion zur Datei find_num.py hinzu:
def calculate_average(text):
    ## Verwende ein Muster für reguläre Ausdrücke, um alle Gleitkomma- und ganzzahligen Zahlen im Text zu finden
    numbers = re.findall(r"[-+]?\d*\.\d+|\d+", text)
    ## Konvertiere die gematchten Zahlen von Strings in Gleitkommazahlen mithilfe von List Comprehension
    numbers = [float(num) for num in numbers]
    ## Berechne den Mittelwert dieser Zahlen
    average = sum(numbers) / len(numbers)
    ## Formatiere den Mittelwert mit zwei Dezimalstellen
    average_formatted = "{:.2f}".format(average)
    return average_formatted

Diese Funktion nimmt einen Text als Eingabe, verwendet eine reguläre Ausdruck, um alle Zahlen (ganze Zahlen und Gleitkommazahlen) aus dem Text zu extrahieren, berechnet den Mittelwert dieser Zahlen und formatiert das Ergebnis auf zwei Dezimalstellen.

Implementiere die Hauptlogik

In diesem Schritt lernst du, wie du die Hauptlogik des Skripts implementierst.

  1. Füge den folgenden Code zur Datei find_num.py hinzu:
if __name__ == "__main__":
    ## Lies den zu analysierenden Text aus den Befehlszeilenargumenten (das erste Argument, sys.argv[1])
    text = sys.argv[1]
    ## Rufe die calculate_average-Funktion mit dem bereitgestellten Text auf
    average = calculate_average(text)
    ## Drucke den berechneten Mittelwert mit zwei Dezimalstellen
    print(average)

Dieser Code überprüft, ob das Skript als Hauptprogramm ausgeführt wird (if __name__ == "__main__":). Wenn ja, liest er den zu analysierenden Text aus den Befehlszeilenargumenten (das erste Argument, sys.argv[1]), ruft die calculate_average-Funktion mit dem bereitgestellten Text auf und druckt den berechneten Mittelwert.

Teste das Skript

In diesem Schritt lernst du, wie du das Skript mit den bereitgestellten Beispielen testest.

  1. Speichere die Datei find_num.py.
  2. Führe das Skript mit den bereitgestellten Beispielen aus:
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"

Die Ausgabe sollte mit den erwarteten Ergebnissen übereinstimmen:

11.29
7.00
6.00

Glückwunsch! Du hast das Projekt abgeschlossen. Das Skript, das du erstellt hast, kann jetzt Zahlen aus einem gegebenen Text extrahieren, den Mittelwert berechnen und das Ergebnis auf zwei Dezimalstellen runden.

✨ Lösung prüfen und üben

Zusammenfassung

Glückwunsch! Du hast dieses Projekt abgeschlossen. Du kannst in LabEx weitere Übungen absolvieren, um deine Fähigkeiten zu verbessern.