python随机总和测验

时间:2015-11-21 00:01:54

标签: python if-statement

我正在学校为某项任务编写一个程序,每次输出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时会显示此错误消息?

1 个答案:

答案 0 :(得分:0)

  

无论用户是否输入正确答案,程序都会输出“错误”。

尝试了几次并获得正确的输出。但是,我不认为接受以下行为,对吗?

rand1 = 3
rand2 = 4
signlist = '+'

result = 7以及result = 12result = -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时,您不会返回任何内容,只需打印某些内容,即可接受此内容。