Heim  >  Artikel  >  Backend-Entwicklung  >  Warum zeigt meine Python-Caesar-Verschlüsselungsfunktion nur das zuletzt verschobene Zeichen an?

Warum zeigt meine Python-Caesar-Verschlüsselungsfunktion nur das zuletzt verschobene Zeichen an?

Susan Sarandon
Susan SarandonOriginal
2024-10-31 21:30:29691Durchsuche

Why Does My Python Caesar Cipher Function Only Display the Last Shifted Character?

Caesar-Cipher-Funktion in Python: Fehlerbehebung bei Zeichenverschiebungsproblemen

Beim Versuch, eine Caesar-Cipher-Funktion in Python zu erstellen, stoßen Benutzer auf ein wiederkehrendes Problem Dabei wird nur das zuletzt verschobene Zeichen und nicht eine gesamte verschlüsselte Zeichenfolge angezeigt. Um dieses Problem anzugehen, untersuchen wir den Code und lokalisieren die Grundursache.

Der bereitgestellte Code folgt den Caesar-Cipher-Prinzipien: Er akzeptiert Klartext und Verschiebungswerte und iteriert durch jedes Zeichen und wendet die erforderlichen Verschiebungen an. Es fehlt jedoch ein entscheidender Schritt: das Erstellen einer neuen Zeichenfolge zum Speichern der verschlüsselten Zeichen.

Innerhalb der Funktion sollte die Initialisierung von cipherText außerhalb der Schleife erfolgen. So wie es aussieht, wird cipherText bei jeder Iteration neu initialisiert, wodurch das zuvor verschlüsselte Zeichen effektiv überschrieben wird und nur das zuletzt verschobene Zeichen angezeigt wird.

Um dieses Problem zu beheben, ändern wir den Code wie folgt:

<code class="python">def caesar(plainText, shift):
    cipherText = ""
    for ch in plainText:
        if ch.isalpha():
            stayInAlphabet = ord(ch) + shift
            if stayInAlphabet > ord('z'):
                stayInAlphabet -= 26
            finalLetter = chr(stayInAlphabet)
            cipherText += finalLetter

    print("Your ciphertext is: ", cipherText)
    return cipherText</code>

So funktioniert es:

  • Wir deklarieren cipherText außerhalb der Schleife und initialisieren ihn als leere Zeichenfolge.
  • Innerhalb der Schleife hängen wir nach der Berechnung von finalLetter an Fügen Sie es der CipherText-Zeichenfolge hinzu.

Dieser aktualisierte Code akkumuliert korrekt alle verschobenen Zeichen und erzeugt so die gewünschte verschlüsselte Zeichenfolge.

Das obige ist der detaillierte Inhalt vonWarum zeigt meine Python-Caesar-Verschlüsselungsfunktion nur das zuletzt verschobene Zeichen an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn