ARTICLE AD BOX
If you are trying to make it so that an invalid input will stop the process and only print the error message, you should move the user_input = input() line inside make_user_choice(). as the first line of code under the function and inside the while user_input != "rock...." as the first line under it, this will get the user's input and then keep running the while loop until to check if the user's input is valid, then, remove the break keyword and the return(user_input) in the while loop, you only need one outside the whole thing as that will only run when user input is valid. Also, your usage of 'or' will trigger the invalid input actions even while the user's input is valid, as, for example, if the user inputs rock, while user_input != rock has been satisfied BUT the other two have not, use 'and'. Below is what (i think that is) the correct code should look like:
def make_user_choice(): """Returns the user's choice of rock, paper, or scissors if it is correct.""" user_input = input("Choose one: rock, paper, scissors?" while user_input != "rock" and user_input != "paper" and user_input != "scissors": print("that is not a valid input. please try again") user_input = input("Choose one: rock, paper, scissors?" return(user_input)and also delete the first user_input = input("") at the top of your code, and even better you can literally replace the long while user_input =! line with, and even better add a .lower() to the whole thing
while user_input not in ["rock", "paper", "scissors"]