Caesar Cipher Python - Características adicionales
Así que actualmente, mi código se ve así (gracias por ayudar en otra publicación que hice)
phrase = raw_input("Enter text to Cipher: ")
shift = int(raw_input("Please enter shift: "))
result = ("Encrypted text is: ")
for character in phrase:
#Loops through phrase and shows ascii numbers, example: hello is: 104,101,108,108,111
x = ord(character)
#adds a shift to each character so if shift is 1 'hello' becomes: ifmmp 105,102,109,109,112
result += chr(x + shift)
print "\n",result,"\n"
El problema es que si escribo más de una palabra, por ejemplo: hola mundo, con un cambio de 1
la salida es:ifmmp!xpsme
El signo de exclamación aparece para un espacio (varía según el turno). Estaba pensando en hacer una sentencia if para detectar espacios:
phrase = raw_input("Enter text to Cipher: ")
shift = int(raw_input("Please enter shift: "))
result = ("Encrypted text is: ")
for character in phrase:
#Loops through phrase and shows ascii numbers, example: hello is: 104,101,108,108,111
x = ord(character)
if x == ord(' '):
print "\nfound a space space"
#adds 1 to each character so 'hello' becomes: ifmmp 105,102,109,109,112
result += chr(x + shift)
print "\n",result,"\n"
Pero no sé cómo agregar el espacio en la variable de resultado. Además, he visto en este hilo:Cifrado de César usando python, podría usar un poco de ayuda
Ese JeffB usó un bucle while para tratar con la tabla ASCII 32 siendo espacio y 127 siendo DEL. ¿Por qué usó el 96? No entiendo.
while x < 32:
x += 96
while x > 127:
x -= 96
Lo siento, esta pregunta es bastante larga. ¡Muchas gracias de antemano! Tu ayuda es invaluable para mí.