Cifrado César en Python
El antiguo cifrado por sustitución, como ejercicio de aritmética modular.
def cesar(texto, desplazamiento):
salida = []
for ch in texto:
if ch.isalpha():
base = ord("A") if ch.isupper() else ord("a")
salida.append(chr((ord(ch) - base + desplazamiento) % 26 + base))
else:
salida.append(ch)
return "".join(salida)
Cómo funciona
- Desplaza cada letra una cantidad fija.
% 26da la vuelta después de la z y regresa a la a.- Mayúsculas y minúsculas se preservan; lo que no es letra pasa intacto.
Palabras clave y builtins usados aquí
chrdefelseforifordreturn
El intento, en números
- Líneas
- 9
- Caracteres a escribir
- 238
- Tokens
- 83
- Ritmo de tres estrellas
- 95 tpm
Al ritmo de tres estrellas de 95 tokens por minuto, este intento toma unos 52 segundos.
Paso 9 de 9 en Cadenas; paso 15 de 72 en Fundamentos del lenguaje.