我想知道如何使用随机运算符从其他随机数中加上,减去并乘以随机生成的数字。
这是我到目前为止所获得的代码:
ops = ['+','-','*']
op = random.choice(ops)
variable1 = random.randrange(1,10)
variable2 = random.randrange(1,10)
if op == '+':
answer = sum(var1+var2)
elif op == '-':
answer = sum(var1-var2)
elif op == '*':
answer = sum(var1*var2)
我经常会收到一条错误消息: answer = sum(var1-var2) TypeError:' int'对象不可迭代
很抱歉,如果这是一个简单的答案,对整个python编码仍然很新鲜! :)
答案 0 :(得分:1)
sum
是for summing up an iterable - 表示列表或列表中的某些内容。
只需使用answer = var1 + var2
。
还有一个名为operators
的有趣模块allows you to supply an operator,它反映了内置运算符,这使您可以进一步概括这一点。
像这样的东西可能会更加pythonic:
import operators
ops = [operators.iadd, operators.imul, operators.isub]
# pick your op = ..
# pick your vars = ..
answer = op(var1, var2)
答案 1 :(得分:0)
sum
需要可迭代。在这里,您已经知道了答案,但尝试将其提交给sum
,所以没有必要,只需删除它。
ops = ['+','-','*']
op = random.choice(ops)
var1 = random.randrange(1,10)
var2 = random.randrange(1,10)
if op == '+':
answer = var1+var2
elif op == '-':
answer = var1-var2
elif op == '*':
answer = var1*var2