我试图编写一个生成随机数的程序,要求用户猜测加法输出,当用户无法正确猜测输出时,它应该打印所执行的猜测总数。 我的代码如下。任何帮助都非常感谢。
from random import randint
a = randint(0,100)
b = randint(1,100)
c=raw_input(" enter your answer ")
for i in range(10):
print a,'+',b,'=', c
print('Correct!\n') #if answer is correct
elif
print ('Correct Solutions!' (i))
答案 0 :(得分:0)
首先,你的缩进搞砸了。并且您似乎有多个不同版本的python代码 - print()
,因为函数是python3,print
,因为语句是python2。 python3也使用input()
而不是raw_input()
。在这个答案中,我将假设python3和这个缩进模型:
from random import randint
a = randint(0,100)
b = randint(1,100)
c = input(" enter your answer ")
for i in range(10):
print( a,'+',b,'=', c)
print('Correct!\n') #if answer is correct
elif
print ('Correct Solutions!' (i))
首先,elif
要求前面有if
。我认为这应该像
if (a+b) == int(c):
print("Correct")
然后下一个应该是else
,因为答案是正确的,或者不是。
接下来,在循环之前,您只获得一次输入。由于我们处于循环中,我们也将解决这个问题 - 因为循环是有限的,它们只会发生X次而不会发生。当这个人真的很糟糕并且错误地回答12次会发生什么?由于循环完成,它们永远不会正确。将其重写为while
循环:
count=0 # no correct answers yet
while True: # Keep going until they're right
# Edits as per comments:
a = random.randint(0,100)
b = random.randint(0,100)
# end edits.
c = input((str(a)+' + '+str(b)+' = '))
# Check if correct
if (a+b) == int(c):
print("Correct!")
count += 1
else:
print("Incorrect.")
break # stop when they get one wrong
此外,输入始终以字符串形式出现 - 您必须将其强制转换为数值。
编辑:根据评论添加了几行。