2016-10-03 84 views
-1

我一直在试图弄清楚如何将正确的答案与正确的问题进行匹配。现在,如果用户的答案等于任何答案,则返回正确。请帮忙。简单测验 - 如何链接变量?

easy_question = "The capitol of West Virginia is __1__" 
medium_question = "The device amplifies a signal is an __2__" 
hard_question = "A program takes in __3__ and produces output." 

easy_answer = "Charleston" 
medium_answer = "amplifier" 
hard_answer = "input" 

questions_and_answers = {easy_question: easy_answer, 
        medium_question: medium_answer, 
        hard_question: hard_answer} 
#print(easy_answer in [easy_question, easy_answer]) 
#print(questions_and_answers[0][1]) 

print('This is a quiz') 
ready = input("Are you ready? Type Yes.") 
while ready != "Yes": 
    ready = input("Type Yes.") 
user_input = input("Choose a difficulty: Easy, Medium, or Hard") 

def choose_difficulty(user_input): 
    if user_input == "Easy": 
     return easy_question 
    elif user_input == "Medium": 
     return medium_question 
    elif user_input == "Hard": 
     return hard_question 
    else: 
     print("Incorrect") 
     user_input = input("Type Easy, Medium, or Hard") 
print(choose_difficulty(user_input)) 


answer = input("What is your answer?") 
def check_answer(answer): 
    if answer == easy_answer: 
     return "Correct" 
    elif answer == medium_answer: 
     return "Correct" 
    elif answer == hard_answer: 
     return "Correct" 
print(check_answer(answer)) 
+0

你还没有尝试在'check_answer'中返回除''Correct''之外的任何东西。 – TigerhawkT3

+0

因为'if/elif'将会继续检查条件,直到事情成立,然后你将遇到'return'条件。在'check_answer'中,你只要继续下去,直到找到正确的东西。 – roganjosh

回答

1

你会希望保持question的轨迹:

question = choose_difficulty(user_input) 
print(question) 

answer = input("What is your answer?") 
def check_answer(question, answer): 
    if questions_and_answers[question] == answer: 
     return "Correct" 
    return "Incorrect" 
print(check_answer(question, answer)) 

还有很多更有趣的东西,你可以做,但是这是一个应该解决您的问题小例子!

编辑:

当你做

questions_and_answers = {easy_question: easy_answer, 
       medium_question: medium_answer, 
       hard_question: hard_answer} 

您创建了一个字典(或dict因为它在Python的已知)。见examples。基本上,你可以在第一学期(问题)进行查找,并返回第二学期(答案)。

+0

非常感谢!那么,“如果questions_and_answers [问题] ==回答”是什么呢? – MrWizard

-1

我会这样做的方式:创建2个变量,x和y。如果用户选择“Easy”,它将x设置为1,“Medium”将其设置为2等等。然后你问他一个答案。对于简单问题的答案,如果正确,则将y设置为1,将介质设置为2,等等。然后你有一个检查,如果x == y。如果是,那么他已经正确回答了这个问题。

+0

这不起作用,并没有解决原始代码的限制。 OP是按照正确答案的正确答案在字典中进行映射的正确方式,并且已经为您提供了比您提供的问题更全面的答案 – roganjosh