Akrostiche Gedichte in Python entschlüsseln

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 die versteckte Nachricht in einem Akrostichon entschlüsseln kannst. Akrostiche Gedichte sind eine Art von Gedichten, bei denen die ersten Buchstaben jeder Zeile ein Wort oder eine Phrase bilden. Deine Aufgabe ist es, eine Python-Funktion zu schreiben, die die ersten Wörter jeder Zeile extrahieren und zu einer Zeichenkette zusammenfügen kann, um die versteckte Nachricht zu enthüllen.

👀 Vorschau

## Beispiel
$ python3 acrostic_poetry.py
RainItItAnd

🎯 Aufgaben

In diesem Projekt wirst du lernen:

  • Wie du die Problemstellung und die Anforderungen für das Projekt zur Entschlüsselung von Akrostichen verstehst
  • Wie du die Funktion acrostic_poetry_decryption(poem) implementierst, um die Nachricht in einem Akrostichon zu entschlüsseln
  • Wie du die Entschlüsselungsfunktion mit einem Beispiel-Eingabe testest

🏆 Errungenschaften

Nach Abschluss dieses Projekts wirst du in der Lage sein:

  • Probleme, die Textmanipulation und Musterextraktion betreffen, zu verstehen und zu lösen
  • Eine Python-Funktion zu schreiben, die versteckte Nachrichten in Akrostichen entschlüsseln kann
  • Deinen Code zu testen und zu debuggen, um sicherzustellen, dass er richtig funktioniert

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python(("Python")) -.-> python/FileHandlingGroup(["File Handling"]) python(("Python")) -.-> python/AdvancedTopicsGroup(["Advanced Topics"]) python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/ControlFlowGroup(["Control Flow"]) python/BasicConceptsGroup -.-> python/strings("Strings") python/ControlFlowGroup -.-> python/list_comprehensions("List Comprehensions") python/FunctionsGroup -.-> python/function_definition("Function Definition") python/FileHandlingGroup -.-> python/file_operations("File Operations") python/AdvancedTopicsGroup -.-> python/regular_expressions("Regular Expressions") subgraph Lab Skills python/strings -.-> lab-302717{{"Akrostiche Gedichte in Python entschlüsseln"}} python/list_comprehensions -.-> lab-302717{{"Akrostiche Gedichte in Python entschlüsseln"}} python/function_definition -.-> lab-302717{{"Akrostiche Gedichte in Python entschlüsseln"}} python/file_operations -.-> lab-302717{{"Akrostiche Gedichte in Python entschlüsseln"}} python/regular_expressions -.-> lab-302717{{"Akrostiche Gedichte in Python entschlüsseln"}} end

Problem verstehen

In diesem Schritt lernst du, wie du die Problemstellung und die Anforderungen für das Projekt zur Entschlüsselung von Akrostichen verstehst.

Das Ziel dieses Projekts ist es, eine Funktion acrostic_poetry_decryption(poem) zu schreiben, die einen String, der den Inhalt eines Gedichts repräsentiert, als Eingabe nimmt und die entschlüsselte Nachricht zurückgibt, indem sie die ersten Wörter jeder Zeile extrahiert und zusammenfügt.

Die Anforderungen für das Projekt sind:

  1. Mit Ausnahme der re-Bibliothek darf keine andere Standardbibliothek oder Drittanbieterbibliothek verwendet werden.
  2. Der poem-Parameter der Funktion kann ein String sein, der leer sein, None oder irgendeinen anderen Wert annehmen kann.
  3. Der Dateipfad, der Dateiname (acrostic_poetry.py) oder der Funktionsname (acrostic_poetry_decryption(poem)) dürfen nicht geändert werden.
  4. Wenn du den Code im Online-Environment debuggst, verwende den Befehl python3 acrostic_poetry.py, um Python3 aufzurufen.

Implementiere die Entschlüsselungsfunktion

In diesem Schritt wirst du die Funktion acrostic_poetry_decryption(poem) implementieren, um die Nachricht in einem Akrostichon zu entschlüsseln.

Hier ist der Ausgangscode für die Datei acrostic_poetry.py:

import re
from typing import Optional


def acrostic_poetry_decryption(poem: str) -> Optional[str]:
    """
    Entschlüssel die Nachricht in einem Akrostichon, indem du die ersten Wörter jeder Zeile extrahierst und miteinander verknüpfst.
    """
    ## Wenn der eingegebene Inhalt leer ist, gib `None` zurück
    if not poem:
        return None

    ## TODO: Implementiere die Entschlüsselungslogik
    ## 1. Teile das Gedicht in Zeilen auf, indem du das Trennzeichen ',' oder '.' verwendest
    ## 2. Extrahiere das erste Wort aus jeder Zeile
    ## 3. Verknüpfe die ersten Wörter miteinander, um den Entschlüsselungstext zu erhalten
    ## 4. Weise die resultierende Zeichenkette der Variable `decryption_text` zu

    return decryption_text

So kannst du die Entschlüsselungsfunktion implementieren:

  1. Teile die Zeichenkette poem in eine Liste von Zeilen auf, indem du die re.split()-Funktion mit dem regulären Ausdrucksmuster r"[,.]" verwendest.
  2. Iteriere durch die Liste der Zeilen und extrahiere für jede Zeile das erste Wort, indem du die Zeile anhand von Leerzeichen aufspaltest und das erste Element nimmst.
  3. Verknüpfe alle ersten Wörter miteinander, um den Entschlüsselungstext zu erhalten.
  4. Weise den Entschlüsselungstext der Variable decryption_text zu und gib ihn zurück.

Hier ist der abgeschlossene Code:

import re
from typing import Optional


def acrostic_poetry_decryption(poem: str) -> Optional[str]:
    """
    Entschlüssel die Nachricht in einem Akrostichon, indem du die ersten Wörter jeder Zeile extrahierst und miteinander verknüpfst.
    """
    ## Wenn der eingegebene Inhalt leer ist, gib `None` zurück
    if not poem:
        return None

    ## Teile das Gedicht in Zeilen auf, indem du das Trennzeichen ',' oder '.' verwendest
    lines = re.split(r"[,.]", poem)

    ## Extrahiere das erste Wort aus jeder Zeile
    words = [line.strip().split(" ")[0] for line in lines]

    ## Verknüpfe die ersten Wörter miteinander, um den Entschlüsselungstext zu erhalten
    decryption_text = "".join(words)

    return decryption_text

Teste die Entschlüsselungsfunktion

In diesem Schritt wirst du die Funktion acrostic_poetry_decryption(poem) mit dem in der Herausforderung angegebenen Beispiel testen.

  1. Füge den folgenden Code am Ende der Datei acrostic_poetry.py hinzu:
if __name__ == "__main__":
    string = "Rain is falling all around, It falls on field and tree. It rains on the umbrella here, And on the ships at sea."
    print(acrostic_poetry_decryption(string))
  1. Speichere die Datei und führe im Terminal den folgenden Befehl aus:
python3 acrostic_poetry.py

Die Ausgabe sollte lauten:

RainItItAnd

Dies bestätigt, dass die Funktion acrostic_poetry_decryption(poem) wie erwartet funktioniert.

Herzlichen Glückwunsch! Du hast das Projekt zur Entschlüsselung von Akrostichen abgeschlossen. Wenn du Fragen hast oder weitere Hilfe benötigst, kannst du gerne fragen.

✨ 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.