Fonction de chiffrement César en Python : dépannage du problème de changement de caractère
En essayant de créer une fonction de chiffrement César en Python, les utilisateurs rencontrent un problème récurrent où seul le dernier caractère décalé est affiché, plutôt qu'une chaîne chiffrée entière. Pour résoudre ce problème, nous examinons le code et identifions la cause première.
Le code fourni adhère aux principes du chiffre de César : il accepte le texte en clair et les valeurs de décalage, et il parcourt chaque caractère, en appliquant les décalages nécessaires. Cependant, il manque une étape cruciale : créer une nouvelle chaîne pour stocker les caractères chiffrés.
Au sein de la fonction, l'initialisation de cipherText doit avoir lieu en dehors de la boucle. Dans l'état actuel des choses, cipherText est réinitialisé à chaque itération, écrasant ainsi le caractère chiffré précédent et entraînant l'affichage uniquement du dernier caractère décalé.
Pour remédier à ce problème, nous modifions 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 print("Your ciphertext is: ", cipherText) return cipherText</code>
Voici comment cela fonctionne :
Ce code mis à jour accumule correctement tous les caractères décalés, produisant la chaîne chiffrée souhaitée.
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!