Maison > développement back-end > Tutoriel Python > Pourquoi mon chiffre César en Python ne renvoie-t-il que le dernier caractère décalé ?

Pourquoi mon chiffre César en Python ne renvoie-t-il que le dernier caractère décalé ?

Barbara Streisand
Libérer: 2024-10-30 04:21:02
original
313 Les gens l'ont consulté

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

Fonction de chiffrement César en Python

En Python, la mise en œuvre du chiffrement César nécessite le décalage des lettres en fonction de l'entrée spécifiée par l'utilisateur. Cependant, une erreur courante est que le texte chiffré final ne reflète que le dernier caractère décalé plutôt que la chaîne entière.

Le code fourni est confronté à ce problème. Il parcourt le texte en clair et calcule le caractère décalé, mais il met à jour une seule variable cipherText dans la boucle. En conséquence, seul le dernier caractère décalé est ajouté à la sortie.

Pour résoudre ce problème, il est nécessaire de concaténer les caractères décalés dans une nouvelle chaîne lors de chaque itération de la boucle. Voici le code corrigé :

<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>
Copier après la connexion

Maintenant, la variable cipherText est modifiée et ajoutée à chaque caractère décalé, garantissant que la sortie finale contient la chaîne cryptée complète.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal