IF语句直接跳到ELSE

时间:2017-08-04 01:32:03

标签: python python-2.7

首先说我是python的新手,我必须做一个学校项目,我仍然坚持使用这部分代码。实际上,通过IF语句满足要求(用户输入等于答案,我很确定)并且系统正在直接跳到ELSE。我不确定我是不是只是盲目的,这是一个简单的格式化问题,或者如果它是我缺少的东西。

while valid == False:
topic = input().lower()
if topic == "addition":
    print ("You have selected Addition!")
    valid = True

    ARand1 = randrange(1, 200)
    ARand2 = randrange(1, 200)
    question_answer = ARand1 + ARand2

    print ("Question",questions_asked,":")
    print ("What is",ARand1,"+",ARand2,"?")

    users_answer = input("Please input your answer")

    if users_answer == (question_answer):
        print ("Correct!")
        total_score += 1
        questions_asked += 1

    else:
        print ("Incorrect!")
        questions_asked += 1
        print (questions_asked)


elif topic == "subtraction":
    print ('You have selected Subtraction!')
    valid = True

    SRand1 = randrange(100, 200)
    SRand2 = randrange(1, 100)
    answer = SRand1 - SRand2

    print ("Question",questions_asked,":")
    print ("What is",SRand1,"-",SRand2,"?")

我遇到的部分是第二个if语句(如果users_answer ==(question_answer):)。它完全跳过IF并直接进入ELSE,即使满足条件。

道歉,如果这很简单,或者写得不好,几周前我就被介绍给Python了。

1 个答案:

答案 0 :(得分:2)

users_answer = input("Please input your answer")更改为users_answer = raw_input("Please input your answer") 如果答案是int,则将其解析为int(raw_input("Please input your answer"))

引用此回答here input():解释和评估输入,这意味着如果用户输入整数,将返回一个整数,如果用户输入字符串,则返回字符串。

raw_input():raw_input()正好接受用户输入的内容并将其作为字符串传回。它不解释用户输入。即使输入整数值10或输入列表,其类型也将是字符串仅