试图制作数学游戏,但数学不起作用

时间:2013-12-08 13:35:16

标签: python python-2.7

我正在尝试制作一个简单的乘法游戏。我最初有这样的代码

m = 1
total = 3
print "Which Multiplication tables do you want to practice?"
toPractice = raw_input()

while m <= total: 
    print "What is %s times %s" % (toPractice, m)
    answer = raw_input('Your Answer: ')
    print answer

    if answer == toPractice * m:
        print "Correct!"
        m = m + 1

    else: 
        print "Answer %s is incorrect." % (answer)
        print 'Correct Answer: ', toPractice * m # For testing
        m = m + 1 # For testing

但这样做只是使你正在做的乘法表(例如12)在12 * 2上显示为1212,在12 * 3上显示为121212等等。所以我将它转换为整数。

toPractice = raw_input()
toPractice = int(toPractice)

但是,当我这样做时,它会说12 * 2的答案是24,但它说答案是不正确的。我问过朋友并试着四处寻找,但却无法弄清楚为什么它不起作用。

2 个答案:

答案 0 :(得分:3)

你也需要使用他们答案的整数!

if int(answer) == toPractice * m:

答案 1 :(得分:3)

不要忘记:raw_input始终返回str。乘以一个字符串只是重复它,例如"12" * 3 = "121212"。您需要使用int函数将输入转换为整数:

answer = raw_input('Your Answer: ')
answer = int(answer)

或者更短的方式:

answer = int(raw_input('Your Answer: '))

您需要为程序中需要数字的每个输入执行此操作。