Warum gibt meine Caesar-Verschlüsselung in Python nur das zuletzt verschobene Zeichen zurück?

Barbara Streisand
Freigeben: 2024-10-30 04:21:02
Original
288 Leute haben es durchsucht

Why does my Caesar Cipher in Python only return the last shifted character?

Caesar-Chiffrierfunktion in Python

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage