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

2024-10-03 23:19:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我刚刚编写了一个简单的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

提前谢谢, 哈姆扎·塔布布。你知道吗


Tags: 答案用户程序trueinputrawifrandom
2条回答

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

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

现在比较工作如预期。你知道吗

问题在于这段代码。你知道吗

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

实际上python将其解释为string作为原始输入函数的返回类型,因此必须将其转换为integer,以便使用int(str)函数与integer进行比较。你知道吗

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

会给你所需要的。你知道吗

相关问题 更多 >