如何使用随机生成的数字和运算符为方程创建答案?

时间:2015-03-12 20:11:10

标签: python variables math random

我想知道如何使用随机运算符从其他随机数中加上,减去并乘以随机生成的数字。

这是我到目前为止所获得的代码:

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编码仍然很新鲜! :)

2 个答案:

答案 0 :(得分:1)

sumfor 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