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:
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
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.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3