Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from string import ascii_lowercase
- abc = ascii_lowercase
- def caesar_code(message, shift):
- output = ""
- shift = shift % len(abc)
- for char in message.lower():
- output += char if char not in abc else _find_shifted_letter(char, shift)
- return output
- def _find_shifted_letter(letter, shift):
- index = abc.index(letter) + shift
- index = index if index < len(abc) else index - len(abc)
- return abc[index]
- def vigenere_encode(message, code):
- code_gen = _code_generator(code)
- output = ""
- for letter in message.lower():
- output += letter if letter not in abc else caesar_code(next(code_gen), abc.index(letter))
- return output
- def vigenere_decode(message, code):
- code_gen = _code_generator(code)
- output = ""
- for letter in message.lower():
- output += letter if letter not in abc else caesar_code("a", abc.index(letter) - abc.index(next(code_gen)))
- return output
- def _code_generator(code):
- i = 0
- while True:
- yield code[i % len(code)].lower()
- i += 1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement