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