Heim > Backend-Entwicklung > Python-Tutorial > 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?

Patricia Arquette
Freigeben: 2024-10-29 06:05:02
Original
723 Leute haben es durchsucht

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:

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

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!

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