2023-09-24 00:10:57 -04:00

28 lines
706 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 )