Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python IF语句直接跳到ELSE_Python_Python 2.7 - Fatal编程技术网

Python IF语句直接跳到ELSE

Python IF语句直接跳到ELSE,python,python-2.7,Python,Python 2.7,首先,我要说我是python的新手,我必须做一个学校项目,我必须坚持这部分代码。基本上,IF语句(用户输入等于答案,我敢肯定)满足了需求,系统直接跳到了ELSE。我不确定我是瞎了眼,这是一个简单的格式问题,还是我遗漏了什么 while valid == False: topic = input().lower() if topic == "addition": print ("You have selected Addition!") valid = True ARan

首先,我要说我是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语句(if users\u answer==(question\u answer):)。它完全跳过IF,直接转到ELSE,即使条件满足


抱歉,如果内容简单或者写得不好,我还是在几周前刚被介绍到Python。

用户\u答案=输入(“请输入您的答案”)
更改为
用户\u答案=原始输入(“请输入您的答案”)
如果答案是int,则将其解析为
int(原始输入(“请输入您的答案”)

引用这个答案 input():解释并计算输入,这意味着如果用户输入整数,将返回整数;如果用户输入字符串,则返回字符串


raw_input():raw_input()准确地获取用户键入的内容,并将其作为字符串传回。它不会解释用户输入。即使输入10的整数值或列表,其类型也将仅为字符串。

用户的答案
始终是字符串<代码>问题\答案是一个整数。它们不是同一类型,因此不相等