Python程序没有做到它应该做的事情

时间:2016-06-06 11:12:48

标签: python user-input

我刚写了一个简单的python程序,它应该给这个人两个随机整数,在用户输入他们的添加后,它会告诉他/她答案是否正确。但由于某种原因,无论用户输入什么,它都说答案是不正确的。

以下是该计划:

import random

num = 1
while True:
    print'Welcome to Hamza\'s Math game!!'
    a = raw_input("To start press enter! ")
    if a == '':

        def qgen():
            q1 = random.randrange(0, 11)
            return q1

        while True:
            c1 = qgen()
            c2 = qgen()
            print "Question " + str(num)
            b = raw_input("Whats " + str(c1) + ' + ' + str(c2)+'?\n')
            if b != c1 + c2:
                print 'Gameover, your score was: ' + str(num-1)
                print 'The correct answer was: ' + str(c1 + c2)
                break
            elif b == c1 + c2:
                print'Correct!!!'
                num +=1

提前致谢, Hamza Tahboub。

2 个答案:

答案 0 :(得分:2)

问题在于这段代码。

raw_input("Whats " + str(c1) + ' + ' + str(c2)+'?\n')

实际上python将其解释为字符串作为raw_input函数的返回类型,因此您必须将其转换为整数以使用int(str)函数与整数进行比较。

b = raw_input("Whats " + str(c1) + ' + ' + str(c2)+'?\n')
    if int(b) != c1 + c2:
        print 'Gameover, your score was: ' + str(num-1)
        print 'The correct answer was: ' + str(c1 + c2)
        break
    else:
        print'Correct!!!'
        num +=1

会为您提供所需的信息。

答案 1 :(得分:0)

当用户输入数字时,它被解释为字符串。为了与您将其转换为整数所需的总和进行比较:

b = int(raw_input("Whats " + str(c1) + ' + ' + str(c2)+'?\n'))

现在比较按预期工作。