我正在学校为某项任务编写一个程序,每次输出10个随机问题,每次都提示用户回答。下面是我迄今为止所使用的代码:
from random import randint
rand1 = (randint(0,12))
rand2 = (randint(0,12))
signlist = ["x", "+", "-"]
print(rand1, signlist[randint(0,2)], rand2)
result = input("what is the answer to the sum above? ")
if result == rand1+rand2 or result == rand1-rand2 or result ==rand1*rand2:
print ("correct")
else:
print ("incorrect")
无论用户是否输入正确答案,程序都会输出“错误”。
是否由于'或'功能?我使用不正确吗? 或者有人建议完全重写代码(如果这是不准确的)
我在 if 语句中使用'return'时遇到问题,因为发生了以下错误消息:
'返回'外部功能。
为什么在将'print'替换为return时会显示此错误消息?
答案 0 :(得分:0)
无论用户是否输入正确答案,程序都会输出“错误”。
尝试了几次并获得正确的输出。但是,我不认为接受以下行为,对吗?
rand1 = 3
rand2 = 4
signlist = '+'
result = 7
以及result = 12
和result = -1
。
您应该根据signlist
检查结果:
from random import randint
rand1 = (randint(0,12))
rand2 = (randint(0,12))
signlist = ["x", "+", "-"]
print "%s %s %s" % (rand1, signlist[randint(0,2)], rand2)
result = input("what is the answer to the sum above? ")
if (signlist == "x" and result == rand1*rand2) or (signpost == "+" and result == rand1+rand2) or (signlist == "-" and result == rand1-rand2):
print "correct"
else:
print "incorrect"
为什么在将'print'替换为return时会显示此错误消息?
因为你不允许归还某些东西。当您使用print
时,您不会返回任何内容,只需打印某些内容,即可接受此内容。