Yes/No question with user input in Python

avatar
Borislav Hadzhiev

Last updated: Apr 9, 2024
4 min

banner

# Table of Contents

  1. Yes/No question with user input in Python
  2. Yes/No while loop with user input in Python

# Yes/No question with user input in Python

To ask the user a yes/no question:

  1. Use the input() function to take input from the user.
  2. Use conditional statements to check if the user entered yes or no.
  3. Perform an action if either condition is met.
main.py
user_input = input('Do you like pizza (yes/no): ') if user_input.lower() == 'yes': print('user typed yes') elif user_input.lower() == 'no': print('user typed no') else: print('Type yes or no')

yes no question user input

The code for this article is available on GitHub

We used the input() function to take input from the user.

The if statement checks if the user entered yes and prints a message.

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 else block runs if the user typed something else.

# Checking for multiple variations of Yes/No

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
user_input = input('Do you like pizza (yes/no): ') yes_choices = ['yes', 'y'] no_choices = ['no', 'n'] if user_input.lower() in yes_choices: print('user typed yes') elif user_input.lower() in no_choices: print('user typed no') else: print('Type yes or no')

yes no question multiple choices

The code for this article is available on GitHub

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.

# 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

The code for this article is available on GitHub

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.

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.

# Checking for multiple variations of Yes/No

If you have multiple words that you consider to be yes or no, 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')
The code for this article is available on GitHub

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

The code for this article is available on GitHub

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 enters an invalid value, the else block runs, where we use the continue statement to prompt the user again.

# Additional Resources

You can learn more about the related topics by checking out the following tutorials:

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.