def caesar_cipher(text, key, encrypt=True): result = "" shift = key if encrypt else -key # add for encryption, subtract for decryption for char in text: if char.isalpha(): # only alphabetic characters if char.isupper(): result += chr((ord(char) - ord('A') + shift) % 26 + ord('A')) else: result += chr((ord(char) - ord('a') + shift) % 26 + ord('a')) else: result += char # leave numbers and symbols unchanged return result # ask user for input text text = input("Enter the text: ") # ask user for the key while True: try: key = int(input("Enter the key (integer): ")) break except ValueError: print("Please enter a valid integer.") # ask user whether to encrypt or decrypt while True: choice = input("Do you want to (E)ncrypt or (D)ecrypt? ").strip().upper() if choice in ["E", "D"]: encrypting = True if choice == "E" else False break else: print("Please enter 'E' for encryption or 'D' for decryption.") # process the text result_text = caesar_cipher(text, key, encrypt=encrypting) # display the result print("Result:", result_text)