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>
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!