Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.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 第一次通过重复函数_Python_Python 3.x_Random - Fatal编程技术网

Python 第一次通过重复函数

Python 第一次通过重复函数,python,python-3.x,random,Python,Python 3.x,Random,我正在运行下面的代码,它通过一个输出循环遍历它,然后转到'elif'语句,第一次跳过if语句。第二次通过后,即使我给出了错误的答案,它也会停止。我怎样才能让它用一组新的随机数重复一个错误的猜测,但如果它是正确的,我就接受它 from random import randint def solve(): a = randint(0,10) b = randint(0,10) total = a + b print(str(a) + ' + ' + str(b)

我正在运行下面的代码,它通过一个输出循环遍历它,然后转到'elif'语句,第一次跳过if语句。第二次通过后,即使我给出了错误的答案,它也会停止。我怎样才能让它用一组新的随机数重复一个错误的猜测,但如果它是正确的,我就接受它

from random import randint



def solve():
    a = randint(0,10)
    b = randint(0,10)
    total = a + b
    print(str(a) + ' + ' + str(b) + ' =')
    guess = input()
    if (guess == total):
        print("Correct")
    elif (guess != total):
        print('Try again')
        a = randint(0,10)
        b = randint(0,10)
        total = a + b
        print(str(a) + ' + ' + str(b) + ' =')
        guess = input()


solve()

输入返回一个字符串,它永远不会等于整数

def solve():
    a = randint(0, 10)
    b = randint(0, 10)
    total = a + b
    print(str(a) + ' + ' + str(b) + ' =')
    guess = int(input())
    if (guess == total):
        print("Correct")
    elif (guess != total):
        print('Try again')
        a = randint(0, 10)
        b = randint(0, 10)
        total = a + b
        print(str(a) + ' + ' + str(b) + ' =')
        guess = int(input())

solve()
您的最终代码应该类似于:

def solve():
    while True:
        a = randint(0, 10)
        b = randint(0, 10)
        total = a + b
        print(str(a) + ' + ' + str(b) + ' =')
        guess = int((input()))
        if guess == total:
            print("Correct")
            break
        print('Try again')

您可以使用无限while循环(while循环的条件总是计算为True)。 例如

此外,在满足所需条件后,使用
break
关键字中断流

while True:
    # code
    if condition:
        break
input()
始终返回字符串。如果要将输入与数字进行比较,必须将输入转换为整数

您应该使用
guess=int(input())
而不是
guess=input()


这就是为什么您的代码跳过了
if
语句,字符串永远不会等于int。

为什么a-1这是一个合法的问题哦,对不起,我没有看到。我删除了冲突的代码段。顺便说一句,我在你之前发布了关于如何创建无限循环的内容。这很有意义。我想了一会儿,但还是没能得到。谢谢你的帮助!
while True:
    # code
    if condition:
        break