def shift_string(string, offset): alphabet = "abcdefghijklmnopqrstuvwxyz" max_offset = len(alphabet) -1 min_offset = 0 output = "" for letter in string.lower(): letter_index = alphabet.find(letter) if letter_index == -1: result = letter else: if letter_index + offset > max_offset: result = alphabet[letter_index - len(alphabet) + offset] elif letter_index + offset < 0: result = alphabet[letter_index + len(alphabet) + offset] else: result = alphabet[letter_index + offset] output += result print(f"Your result is: {output}") b_continue = "yes" while b_continue == "yes": action = input("What do you want to do? \"encode\" or \"decode\"?\n") message = input("Type your message.\n") offset = int(input("What is your offset?\n")) if action == "encode": shift_string(message, offset) elif action == "decode": shift_string(message, -offset) else: print("Invalid action - Try again") b_continue = input("Do you want to continue? \"yes\" or \"no\"\n")