# Functions go here def make_statement(statement, decoration): """Emphasises headings by adding decoration at the start and end""" print(f"{decoration * 3} {statement} {decoration * 3}") def string_check(question, valid_answers=('yes', 'no'), num_letters=1): """Checks that users enter the full word or the 'n' letters of a word from a list of valid responses""" while True: response = input(question).lower() for item in valid_answers: # check if the response is the entire word if response == item: return item # check if it's the first letter elif response == item[:num_letters]: return item print(f"Please choose an option from {valid_answers}") def instructions(): make_statement("Instructions", "🎲") print(''' Select whether you want to encrypt or decrypt, then enter your message and the number of letters you want it to be shifted by. The program will record the messages you have encrypted/decrypted, what they were shifted by and how many times you have used the program. Once you have entered the exit code ('xxx'), the program will display your user history and write the data as a text file. ''') # Main routine goes here make_statement("Caesar Cipher Program", "📜") print() want_instructions = string_check("Do you want to see the instructions? ") if want_instructions == "yes": instructions() print() print("program continues...")