Caesar cipher is an antique cryptographic method making some information hidden to whom doesn't have the key to decrypt it.
Think of the alphabet as an ordered list of letters:
>>> from string import ascii_lowercase >>> list(ascii_lowercase) ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
Each letter has a position in this list.
a is 1,
b is 2,
j is 10, etc...
Caesar cypher hide information by using a key which is a positive number to add to the position of the original letter, the result being the position of the encrypted letter.
key == 2 gives
If the key brings you to the end of the alphabet, you continue to count from the begining, such as:
key == 28 gives
To decypher, or decrypt, the message, you apply the same procedure moving backward on the alphabet.
You must provide the functions
caesar_cypher_encrypt(s, key) and
caesar_cypher_decrypt(s, key) where:
sis a string (letter, word, sentence, etc).
keyis a positive integer, the key of the caesar cypher.
Your implementation should only transform uppercase and lowercase ASCII letters. Special characters, numbers and letters with accents should not be transformed.
Your function shall not print but return the encoded/decoded string.
If you've written it in a
caesar.py file, you can test it with:
>>> from caesar import caesar_cypher_encrypt, caesar_cypher_decrypt >>> caesar_cypher_encrypt("a", 2) 'c' >>> caesar_cypher_decrypt("c", 2) 'a' >>> caesar_cypher_encrypt("Python is super disco !", 31) 'Udymts nx xzujw inxht !' >>> caesar_cypher_decrypt("Udymts nx xzujw inxht !", 31) 'Python is super disco !'
There's no corrections yet, hit the `Submit` button to send your code to the correction bot.