„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Warum zeigt meine Caesar-Chiffrierfunktion in Python nur das zuletzt verschobene Zeichen an?

Warum zeigt meine Caesar-Chiffrierfunktion in Python nur das zuletzt verschobene Zeichen an?

Veröffentlicht am 08.11.2024
Durchsuche:379

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

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.

Neuestes Tutorial Mehr>

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