2023-09-24 00:07:21 -04:00

27 lines
700 B
Python

def char_shift(char, shift):
start = ord('a') if char.isupper() else ord('A')
char = ord(char) - start
shift = (char + shift) % 26
return chr(shift+start)
def caesar(message, shift):
out = ''
for letter in message:
if letter.isalpha():
letter = char_shift(letter, shift)
out += letter
# or in one line
# out += char_shift(letter, shift) if letter.isalpha() else letter
return out
def decrypt_caesar(message, shift):
return caesar(message, shift - (shift*2))
# Add your own assert statements to test your code.
sentence = 'But the Caesar Cipher is [still used](http://en.wikipedia.org/wiki/ROT13)'
shift = 300
assert(decrypt_caesar(caesar(sentence, shift), 300) == sentence )