In Python erfordert die Implementierung der Caesar-Chiffre das Verschieben von Buchstaben basierend auf benutzerdefinierten Eingaben. Ein häufiger Fehler besteht jedoch darin, dass der endgültige Chiffriertext nur das letzte verschobene Zeichen und nicht die gesamte Zeichenfolge widerspiegelt.
Der bereitgestellte Code ist mit diesem Problem konfrontiert. Es durchläuft den Klartext und berechnet das verschobene Zeichen, aktualisiert jedoch eine einzelne cipherText-Variable innerhalb der Schleife. Dadurch wird nur das zuletzt verschobene Zeichen zur Ausgabe hinzugefügt.
Um dieses Problem zu beheben, ist es notwendig, die verschobenen Zeichen bei jedem Durchlauf der Schleife zu einer neuen Zeichenfolge zu verketten. Hier ist der korrigierte Code:
<code class="python">plainText = input("What is your plaintext? ") shift = int(input("What is your shift? ")) 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 caesar(plainText, shift)</code>
Jetzt wird die cipherText-Variable geändert und mit jedem verschobenen Zeichen angehängt, um sicherzustellen, dass die endgültige Ausgabe die vollständige verschlüsselte Zeichenfolge enthält.
Das obige ist der detaillierte Inhalt vonWarum gibt meine Caesar-Verschlüsselung in Python nur das zuletzt verschobene Zeichen zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!