我正在运行以下代码,并通过输出循环遍历它,但随后转到“ 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()
答案 0 :(得分:2)
输入返回的字符串永远不会等于整数
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')
答案 1 :(得分:0)
您可以使用无限的while循环(while循环的条件始终为True)。 例如。
while True:
# Do something
此外,只要满足要求,就使用break
关键字中断流。
while True:
# code
if condition:
break
答案 2 :(得分:-1)
input()
始终返回一个字符串。如果要将输入与数字进行比较,则必须将输入转换为整数。
您应该使用guess = input()
代替guess = int(input())
这就是为什么您的代码跳过if
语句的原因,字符串永远不会等于int。