[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