You can actually simplify what you're trying to do:
answer_1 = ''
while answer_1.lower() not in ('y', 'yes', 'si', 'da', 'yes, please'):
answer_1 = raw_input('Are you ready to begin? (type "yes" to begin): ')
And this will continue to ask for them to type... well, any of the possible inputs :)
Your problem is that you're getting the input twice:
print "Are you ready to begin?"
answer_1 = raw_input() # <==== Once here
while answer_1 != "yes" or answer_1 != "y" or answer_1 != "Yes":
print "Type 'yes' when you are ready to begin."
answer_1 = raw_input() # <==== again here
And then your if comes inside the while loop. But you don't need to do that.
It helps if you think about your program and write it out first without writing code:
- while the user doesn't provide correct input, ask the user for input
- then, ask them for their choices
What that means in the code is that you're going to have two separate blocks:
# Block 1
# while not_correct_input:
# get input
# Block 2
# ask for choices
Now you can replace these with code that you need:
from __future__ import print_function
# Block 1
# while not correct input
# get input
# Block 2
name = raw_input("What is your name? ")
color = raw_input("What is your favorite color? ")
home = raw_input("Where do you live? ")
print("So, you're %r. You're favorite color is %r, and you live in %r" % (name, color, home))
Once you try this out and it works, then you can go ahead and add your check for correct input:
# Block 1
answer_1 = ''
while answer_1.lower() not in ('y', 'yes', 'si', 'da', 'yes, please'):
answer_1 = raw_input('Are you ready to begin? (type "yes" to begin): ')
# Block 2
name = raw_input("What is your name? ")
color = raw_input("What is your favorite color? ")
home = raw_input("Where do you live? ")
print("So, you're %r. You're favorite color is %r, and you live in %r" % (name, color, home))
Now when all of this works, go ahead and add the other parts of your program that you want:
from __future__ import print_function
print('''
Hello, Sir or Madame. My name is Oswald, and I will be asking you a few questions, today.
'''.strip())
# Block 1
answer_1 = ''
while answer_1.lower() not in ('y', 'yes', 'si', 'da', 'yes, please'):
answer_1 = raw_input('Are you ready to begin? (type "yes" to begin): ')
# Block 2
name = raw_input("What is your name? ")
color = raw_input("What is your favorite color? ")
home = raw_input("Where do you live? ")
print("So, you're %r. You're favorite color is %r, and you live in %r" % (name, color, home))
Here's an example of what this code looks like in action:
Hello, Sir or Madame. My name is Oswald, and I will be asking you a few questions, today.
Are you ready to begin?
Are you ready to begin? (type "yes" to begin): no
Are you ready to begin? (type "yes" to begin): maybe
Are you ready to begin? (type "yes" to begin): probably
Are you ready to begin? (type "yes" to begin): okay
Are you ready to begin? (type "yes" to begin): yes
What is your name? Wayne
What is your favorite color? Blue... no yellow!
Where do you live? Camelot
So, you're 'Wayne'. You're favorite color is 'Blue... no yellow!', and you live in 'Camelot'