Caesar-Cipher-Funktion in Python: Verschlüsselte Zeichenfolgen
Bei der Implementierung einer Caesar-Cipher-Funktion in Python tritt häufig ein Problem auf, bei dem der endgültige verschlüsselte Text vorliegt zeigt nur das zuletzt verschobene Zeichen an. Um dieses Problem zu beheben, ist es notwendig, das Problem zu verstehen, das dieses Verhalten verursacht.
Im bereitgestellten Code durchläuft die Schleife jedes Zeichen im Klartext. Bei alphabetischen Zeichen wird der ASCII-Code des Zeichens basierend auf dem angegebenen Verschiebungswert verschoben. Allerdings wird jedes verschobene Zeichen innerhalb der Schleife an eine leere Zeichenfolge namens cipherText angehängt. Dadurch wird nur das letzte Zeichen als verschlüsselter Text angezeigt.
Um dieses Problem zu beheben, muss der Chiffretext innerhalb der Schleife erstellt und zurückgegeben werden, sobald alle Zeichen verarbeitet wurden. Dies kann erreicht werden, indem der Code wie folgt geändert wird:
<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 return cipherText</code>
Mit dieser Änderung wird der CipherText-String einmal initialisiert und alle verschobenen Zeichen werden innerhalb der Schleife daran angehängt. Wenn die Funktion zurückkehrt, enthält die verschlüsselte Zeichenfolge wie vorgesehen alle verschobenen Zeichen.
Das obige ist der detaillierte Inhalt vonWarum zeigt meine Caesar-Chiffrierfunktion in Python nur das zuletzt verschobene Zeichen an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!