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:
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!