Das Entschlüsseln des Dreieckschlüssels

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 Dreieckschlüssel entschlüsseln kannst, eine Methode, um Zeichen in einem rechtwinkligen Dreieck zu ordnen. Die versteckte Nachricht befindet sich im letzten Zeichen jeder Zeile, und diese letzten Zeichen werden konkateniert, um die übertragene Information zu bilden.

👀 Vorschau

text = " LcadcbsdxEsdxcx"
decryption_text = "LabEx"

🎯 Aufgaben

In diesem Projekt wirst du lernen:

  • Wie du eine Funktion zum Entschlüsseln eines Dreieckschlüssels erstellst
  • Wie du leere oder None-Eingaben behandelst
  • Wie du die Logik implementierst, um das letzte Zeichen jeder Zeile zu extrahieren und sie zu konkatenieren

🏆 Errungenschaften

Nach Abschluss dieses Projekts wirst du in der Lage sein:

  • Den Begriff eines Dreieckschlüssels zu verstehen
  • Eine Funktion zum Entschlüsseln eines Dreieckschlüssels zu implementieren
  • Verschiedene Arten von Eingaben zu behandeln, einschließlich leerer oder None-Eingaben
  • Dein Wissen um die Zeichenkettenmanipulation anzuwenden, um ein reales Problem zu lösen

Setze die Dreieckentschlüsselungsfunktion ein

Ein Beispiel wird unten bereitgestellt, um das Verständnis zu erleichtern. Gegeben die verschlüsselte Zeichenkette: "LcadcbsdxEsdxcx", wenn sie in einem rechtwinkligen Dreieck eingefüllt wird, sieht es so aus:

L
c a
d c b
s d x E
s d x c x

Indem wir das letzte Zeichen jeder Zeile extrahieren und sie konkatenieren, erhalten wir die entschlüsselte Nachricht: "LabEx".

In diesem Schritt lernst du, wie du die triangle_decryption()-Funktion in der triangle.py-Datei erstellst.

  1. Öffne die triangle.py-Datei in deinem Code-Editor.
  2. Definiere die triangle_decryption()-Funktion, die eine Zeichenkette text als Eingabe nimmt und den entschlüsselten Text als Zeichenkette zurückgibt.
def triangle_decryption(text: str) -> str:
    ## Initialize an empty string to store the decrypted text
    decryption_text = ""

Leere oder None-Eingaben behandeln

In diesem Schritt lernst du, wie du den Fall behandelst, dass die Eingabe text leer oder None ist.

  1. Füge eine if-Anweisung hinzu, um zu überprüfen, ob text nicht leer ist.
if text:
    ## Entferne führende und nachfolgende Leerzeichen aus dem Text
    while text.startswith(" "):
        text = text[1:]
    while text.endswith(" "):
        text = text[:-1]

    ## Gehe mit dem Entschlüsselungsprozess fort
    #...
else:
    ## Wenn der Text None ist, setze den entschlüsselten Text auf None
    decryption_text = None

Implementiere die Entschlüsselungslogik

In diesem Schritt lernst du, wie du die Logik implementierst, um den Dreieckschlüssel zu entschlüsseln.

  1. Initialisiere eine Variable i, um den aktuellen Index in der text-Zeichenkette zu verfolgen.
  2. Initialisiere eine Variable step, um die Schrittweite für jede Zeile zu verfolgen.
  3. Verwende eine while-Schleife, um durch die text-Zeichenkette zu iterieren und das letzte Zeichen jeder Zeile der decryption_text-Zeichenkette hinzuzufügen.
i = 0
step = 1
while i < len(text):
    ## Füge das aktuelle Zeichen zum entschlüsselten Text hinzu
    decryption_text += text[i]
    i = i + 1 + step
    step += 1

## Füge das letzte Zeichen zum entschlüsselten Text hinzu, wenn es nicht das letzte Zeichen des Texts ist
if i - step + 1!= len(text):
    decryption_text += text[-1]

Gib den entschlüsselten Text zurück

In diesem letzten Schritt lernst du, wie du den entschlüsselten Text zurückgibst.

  1. Nach dem Entschlüsselungsprozess gib die decryption_text-Zeichenkette zurück.
return decryption_text

Die vollständige triangle_decryption()-Funktion sollte so aussehen:

def triangle_decryption(text: str) -> str:
    ## Initialisiere eine leere Zeichenkette, um den entschlüsselten Text zu speichern
    decryption_text = ""

    if text:
        ## Entferne führende und nachfolgende Leerzeichen aus dem Text
        while text.startswith(" "):
            text = text[1:]
        while text.endswith(" "):
            text = text[:-1]

        i = 0
        step = 1
        while i < len(text):
            ## Füge das aktuelle Zeichen zum entschlüsselten Text hinzu
            decryption_text += text[i]
            i = i + 1 + step
            step += 1

        ## Füge das letzte Zeichen zum entschlüsselten Text hinzu, wenn es nicht das letzte Zeichen des Texts ist
        if i - step + 1!= len(text):
            decryption_text += text[-1]

    else:
        ## Wenn der Text None ist, setze den entschlüsselten Text auf None
        decryption_text = None

    return decryption_text

if __name__ == "__main__":
    print(triangle_decryption("LcadcbsdxEsdxcx"))
    print(triangle_decryption("Lcadb"))
    print(triangle_decryption(" LcadcbsdxEsdxcx"))
    print(triangle_decryption("L ab"))
    print(triangle_decryption(None))

Teste das Skript

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

  1. Speichere die triangle.py-Datei.
  2. Führe das Skript mit den bereitgestellten Beispielen aus:
python3 /home/labex/project/triangle.py

Die Ausgabe sollte mit den erwarteten Ergebnissen übereinstimmen:

## LcadcbsdxEsdxcx
LabEx
## Lcadb
Lab
## LcadcbsdxEsdxcx
LabEx
## L ab
Lab
## None
None

Herzlichen Glückwunsch! Du hast das Projekt abgeschlossen.

✨ Lösung prüfen und üben

Zusammenfassung

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