[Tutor] func-question_y_n.py
Christopher Emery
cpe.list at gmail.com
Fri Mar 15 23:09:06 CET 2013
Hello Hugo,
# Defines the start of a function and its options (question)
def question_y_n(question):
#1. Ask Question from user, user enters either Yes, No or whatever
(anything that is not Yes or No)
answer = input(question) # prompts the user and assigns the answer
to var answer
#2. If the user had entered anything but Yes then a while loop starts
and becomes True (meaning it is not a Yes) so it must be either No or
something else
while(answer != "Yes"):
#3. If the answer is anything but a No then the user is prompted with
statement and then the question asked again
if answer != "No":
#4. Print statement and ask question again.
print("Please enter Yes or No for your response!")
answer = input(question)
#5. It is assumed that if the answer was not a Yes in the while loop
and it was not a No in the if statement than it is assumed the only
other choice would be a No for the else statement.
else:
answer = "No"
break
return answer
answer = question_y_n("You want a drink of water? :")
print("Your answer to the question was ", answer)
This code works and produces the results that I am looking for,
however I know there is a better way to do it and now you have me
thinking about this again. I just spent about 3 hours doing this
code.
I was thinking of combining the Yes and No into one check however I
was having trouble finding resource of how to do mulitiy checks in a
statement for while.
thinking like this:
def question_y_n(question):
answer = input(question)
while(answer != "Yes" Or "No"): #This is wrong code
print("Please enter Yes or No for your response!")
answer = input(question)
or
# This one does not have ability to loop intill a Yes or No is given
so my gut tells me the one above is better or the one I have at this
time.
def question_y_n(question):
answer = input(question)
if answer == "Yes" OR "No": #this didn't work either for me
break
else
print("Please enter Yes or No for your response!")
answer = input(question)
return answer
Sorry for this layout, I myself was getting a little dizzy reading it.
Thank you for your assistance!
Sincerely in Christ,
Christopher
More information about the Tutor
mailing list