Yes/No while loop with user input in Python

avatar

Borislav Hadzhiev

Last updated: Aug 25, 2022

banner

Photo from Unsplash

Yes/No while loop with user input in Python #

To create a yes/no while loop with user input:

  1. Use a while loop to iterate until a condition is met.
  2. Use the input() function to get input from the user.
  3. If the user types no, use the break statement to break out of the loop.
main.py
user_input = '' while True: user_input = input('Do you want to continue? yes/no: ') if user_input.lower() == 'yes': print('User typed yes') continue elif user_input.lower() == 'no': print('User typed no') break else: print('Type yes/no')

input yes no loop

We used a while True loop to iterate until the user types no.

The if statement checks if the user typed yes and if the condition is met, it continues to the next iteration.

We used the str.lower() method to convert the user input string to lowercase to perform a case-insensitive equality comparison.

main.py
print('YES'.lower()) # 👉️ 'yes' print('Yes'.lower()) # 👉️ 'yes'

The str.lower method returns a copy of the string with all the cased characters converted to lowercase.

The continue statement continues with the next iteration of the loop.

main.py
user_input = '' while True: user_input = input('Do you want to continue? yes/no: ') if user_input.lower() == 'yes': print('User typed yes') continue elif user_input.lower() == 'no': print('User typed no') break else: print('Type yes/no')

If the user types no, we print a message and break out of the while True loop.

The break statement breaks out of the innermost enclosing for or while loop.

The else block runs when the user types anything else.

You might also have multiple words that you consider to be yes or no.

If that's the case, add the words to a list and use the in operator to check for membership.

main.py
yes_choices = ['yes', 'y'] no_choices = ['no', 'n'] while True: user_input = input('Do you want to continue? yes/no: ') if user_input.lower() in yes_choices: print('User typed yes') continue elif user_input.lower() in no_choices: print('User typed no') break else: print('Type yes/no')

We used the in operator to check if the input value is either of the items in the list.

The in operator tests for membership. For example, x in l evaluates to True if x is a member of l, otherwise it evaluates to False.

You can also use a while loop if you only want to allow the user to enter some variation of yes and no.

main.py
yes_choices = ['yes', 'y'] no_choices = ['no', 'n'] while True: user_input = input('Do you like pizza (yes/no): ') if user_input.lower() in yes_choices: print('user typed yes') break elif user_input.lower() in no_choices: print('user typed no') break else: print('Type yes or no') continue

input yes no loop only allow yes no

We used a while loop to only allow the user to answer yes, y, no or n.

If the if block runs, we print a message and use the break statement to exit out of the loop.

The break statement breaks out of the innermost enclosing for or while loop.

If the user entered an invalid value, the else block runs, where we use the continue statement to prompt the user again.

I wrote a book in which I share everything I know about how to become a better, more efficient programmer.
book cover
You can use the search field on my Home Page to filter through all of my articles.