Das Generieren eines Kampagnenberichts

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 einen Kampagnenbericht basierend auf den bereitgestellten Datenfiles generierst. Der Kampagnenbericht wird die wichtigsten Informationen aus den Schlachten zusammenfassen, die an drei verschiedenen Feindbasen stattfanden, einschließlich der Kampagnen-ID, des Werts, der Gesamtteilnehmer, der Verwundeten, der Getöteten und der gefallenen Helden.

👀 Vorschau

Kampagnenbericht

🎯 Aufgaben

In diesem Projekt wirst du lernen:

  • Wie du die Datenfiles, die die Kampagneninformationen enthalten, liest und verstehst
  • Wie du die Funktion auto_generate_report implementierst, um den Kampagnenbericht zu generieren
  • Wie du den Kampagnenbericht mit zusätzlicher Formatierung und Informationen verbesserst
  • Wie du den Kampagnenbericht testest und verfeinern, um sicherzustellen, dass er den Anforderungen entspricht

🏆 Errungenschaften

Nach Abschluss dieses Projekts wirst du in der Lage sein:

  • Effizient Daten aus CSV-Dateien zu lesen und zu verarbeiten
  • Eine Funktion zur Erzeugung eines strukturierten und informativen Berichts zu implementieren
  • Deine Fähigkeit, Schritt-für-Schritt-Anweisungen zu befolgen und ein Codierungsprojekt abzuschließen, zu demonstrieren
  • Deine Fähigkeiten in der Datenmanipulation, -formatierung und -berichterstattung zu verbessern

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python(("Python")) -.-> python/ModulesandPackagesGroup(["Modules and Packages"]) python(("Python")) -.-> python/ErrorandExceptionHandlingGroup(["Error and Exception Handling"]) python(("Python")) -.-> python/FileHandlingGroup(["File Handling"]) python(("Python")) -.-> python/PythonStandardLibraryGroup(["Python Standard Library"]) python(("Python")) -.-> python/DataScienceandMachineLearningGroup(["Data Science and Machine Learning"]) python/FunctionsGroup -.-> python/function_definition("Function Definition") python/FunctionsGroup -.-> python/lambda_functions("Lambda Functions") python/ModulesandPackagesGroup -.-> python/using_packages("Using Packages") python/ErrorandExceptionHandlingGroup -.-> python/catching_exceptions("Catching Exceptions") python/FileHandlingGroup -.-> python/file_reading_writing("Reading and Writing Files") python/PythonStandardLibraryGroup -.-> python/data_collections("Data Collections") python/DataScienceandMachineLearningGroup -.-> python/data_analysis("Data Analysis") subgraph Lab Skills python/function_definition -.-> lab-302731{{"Das Generieren eines Kampagnenberichts"}} python/lambda_functions -.-> lab-302731{{"Das Generieren eines Kampagnenberichts"}} python/using_packages -.-> lab-302731{{"Das Generieren eines Kampagnenberichts"}} python/catching_exceptions -.-> lab-302731{{"Das Generieren eines Kampagnenberichts"}} python/file_reading_writing -.-> lab-302731{{"Das Generieren eines Kampagnenberichts"}} python/data_collections -.-> lab-302731{{"Das Generieren eines Kampagnenberichts"}} python/data_analysis -.-> lab-302731{{"Das Generieren eines Kampagnenberichts"}} end

Lies und verstehe die Datenfiles

In diesem Schritt lernst du, wie du die für das Projekt bereitgestellten Datenfiles liest und verstehst.

Die Datenfiles für die drei Basen heißen A.csv, B.csv und C.csv. Jede Zeile der Daten enthält die folgenden Informationen:

  • id: Die Kampagnen-ID.
  • value: Der Wert des Kampagnenziels.
  • total: Die Gesamtzahl der Teilnehmer auf unserer Seite in der Schlacht.
  • injured: Die Gesamtzahl der Verletzungen auf unserer Seite in der Schlacht.
  • dead: Die Anzahl der Todesfälle auf unserer Seite in der Schlacht.
  • hero: Die ID-Nummer der Todesfälle in der Schlacht.

Implementiere die auto_generate_report-Funktion

In diesem Schritt wirst du die auto_generate_report-Funktion implementieren, um den Kampagnenbericht zu generieren.

Öffne die Datei auto_generate_report.py. In der Datei auto_generate_report.py sollte die auto_generate_report-Funktion eine Liste von Dateipfaden als Eingabe entgegennehmen und den Kampagnenbericht als Zeichenfolge zurückgeben. Die Funktion sollte die Daten aus jeder Datei lesen, die Daten nach dem value-Feld in absteigender Reihenfolge sortieren und dann den Kampagnenbericht generieren.

Hier ist der Anfangscode für die auto_generate_report-Funktion:

def auto_generate_report(file_paths):
    report = "Kampagnenbericht wie folgt:\n"

    for file_path in file_paths:
        with open(file_path, "r") as file:
            reader = csv.DictReader(file)
            data = list(reader)

        data.sort(key=lambda x: int(x["value"]), reverse=True)

        base_name = file_path.split("/")[-1].split(".")[0].upper()
        report += (
            f"Schlachten, die an der Basis {base_name} stattfanden, sortiert nach Wert, sind wie folgt:\n"
        )
        for row in data:
            report += f"Kampagnen-ID: {row['id']}, Wert: {row['value']}, Gesamtteilnehmer in dieser Schlacht: {row['total']}, Verwundet: {row['injured']}, Tote: {row['dead']}."
            if row["dead"] == "0":
                report += " Gefallene Helden: Keiner.\n"
            else:
                report += f" Gefallene Helden: {row['hero']}.\n"

    return report

Um die Implementierung abzuschließen, musst du:

  1. Fehlerbehandlung hinzufügen, falls die Dateipfade ungültig sind oder die Dateien nicht gelesen werden können.
  2. Stellen sicher, dass die Berichtsformatierung konsistent und leicht lesbar ist.
  3. Die auto_generate_report-Funktion mit der bereitgestellten Beispiel-Eingabe testen und überprüfen, ob die Ausgabe dem erwarteten Format entspricht.

Teste und verfeine den Kampagnenbericht

In diesem letzten Schritt wirst du die auto_generate_report-Funktion mit der bereitgestellten Beispiel-Eingabe testen und den Bericht nach Bedarf verfeinern.

  1. Teste die Funktion, indem du folgenden Code ausführst:
if __name__ == "__main__":
    file_paths = [
        "/home/labex/project/A.csv",
        "/home/labex/project/B.csv",
        "/home/labex/project/C.csv",
    ]
    print(auto_generate_report(file_paths))

Dies generiert den Kampagnenbericht basierend auf den Daten in den bereitgestellten Dateien.

  1. Führe das Skript mit dem folgenden Befehl aus:

    python auto_generate_report.py
Kampagnenbericht
  1. Überprüfe sorgfältig den generierten Kampagnenbericht und stelle sicher, dass er den folgenden Anforderungen entspricht:

    • Der Bericht ist leicht lesbar und verständlich.
    • Die Kampagneninformationen für jede Basis sind nach dem value-Feld in absteigender Reihenfolge sortiert.
    • Der Abschnitt "Gefallene Helden" zeigt "Keiner" korrekt an, wenn es keine Todesfälle gibt, und listet die IDs der gefallenen Helden, wenn es Todesfälle gibt.
    • Die Gesamtformatierung des Berichts ist konsistent und visuell ansprechend.
  2. Wenn du irgendwelche Probleme oder Verbesserungsmöglichkeiten entdeckst, aktualisiere die auto_generate_report-Funktion entsprechend und teste den Bericht erneut.

Wenn du mit dem generierten Kampagnenbericht zufrieden bist, hast du das Projekt erfolgreich abgeschlossen!

✨ Lösung prüfen und üben

Zusammenfassung

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