# The Caesar Cipher Algorithm

def main():
    message = input("Enter message: ")
    key     = int(input("Key [1-26]: "))
    mode    = input("Encrypt or Decrypt [e/d]: ")

    if mode.lower().startswith('e'):
        mode = "encrypt"
    elif mode.lower().startswith('d'):
        mode = "decrypt"

    translated = encdec(message, key, mode)
    if mode ==   "encrypt":
        print("Encryption:", translated)
    elif mode == "decrypt":
        print("Decryption:", translated)
        
def encdec(message, key, mode):
    message    = message.upper()
    translated = ""
    LETTERS    = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    for symbol in message:
        if symbol in LETTERS:
            num = LETTERS.find(symbol)
            if mode ==   "encrypt":
                num = num + key
            elif mode == "decrypt":
                num = num - key

            if num >= len(LETTERS):
                num -= len(LETTERS)
            elif num < 0:
                num += len(LETTERS)

            translated += LETTERS[num]
        else:
            translated += symbol
    return translated

if __name__ == '__main__':
    import doctest
    doctest.testmod()
    main()
