Función de cifrado César en Python: cadenas cifradas
Al implementar una función de cifrado César en Python, surge un problema común cuando el texto cifrado final muestra sólo el último carácter desplazado. Para resolver esto, es necesario comprender el problema que causa este comportamiento.
En el código proporcionado, el bucle itera sobre cada carácter del texto sin formato. Para caracteres alfabéticos, cambia el código ASCII del carácter según el valor de desplazamiento proporcionado. Sin embargo, cada carácter desplazado se agrega a una cadena vacía llamada cipherText dentro del bucle. Como resultado, solo se muestra el último carácter como texto cifrado.
Para rectificar este problema, el texto cifrado debe construirse dentro del bucle y devolverse una vez que se hayan procesado todos los caracteres. Esto se puede lograr modificando el código de la siguiente manera:
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
Con esta modificación, la cadena cipherText se inicializa una vez y todos los caracteres desplazados se le agregan dentro del bucle. Cuando la función regresa, la cadena cifrada contiene todos los caracteres desplazados, según lo previsto.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3