Maison > développement back-end > Tutoriel Python > Pourquoi ma fonction de chiffrement César en Python affiche-t-elle uniquement le dernier caractère décalé ?

Pourquoi ma fonction de chiffrement César en Python affiche-t-elle uniquement le dernier caractère décalé ?

Patricia Arquette
Libérer: 2024-10-29 06:05:02
original
722 Les gens l'ont consulté

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

Fonction de chiffrement César en Python : chaînes cryptées

Lors de l'implémentation d'une fonction de chiffrement César en Python, un problème courant survient lorsque le texte final crypté affiche uniquement le dernier caractère décalé. Pour résoudre ce problème, il est nécessaire de comprendre le problème à l'origine de ce comportement.

Dans le code fourni, la boucle parcourt chaque caractère du texte brut. Pour les caractères alphabétiques, il décale le code ASCII du caractère en fonction de la valeur de décalage fournie. Cependant, chaque caractère décalé est ajouté à une chaîne vide nommée cipherText dans la boucle. Par conséquent, seul le dernier caractère est affiché comme texte chiffré.

Pour résoudre ce problème, le texte chiffré doit être construit dans la boucle et renvoyé une fois que tous les caractères ont été traités. Ceci peut être réalisé en modifiant le code comme suit :

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

Avec cette modification, la chaîne cipherText est initialisée une fois et tous les caractères décalés y sont ajoutés dans la boucle. Lorsque la fonction revient, la chaîne cryptée contient tous les caractères décalés, comme prévu.

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