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



我想知道如何用随机运算符从其他随机数中加、减和乘以随机生成的数字。

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

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)

我通常会收到一条错误消息:答案 = 总和(var1-var2)类型错误:"int"对象不可迭代

不起,如果这是一个简单的答案,对整个python编码来说仍然很新鲜! :)

>sum用于总结可迭代对象 - 意味着列表或表现为列表的东西。

只需使用answer = var1 + var2.

还有一个名为 operators 的有趣模块,它允许您提供一个镜像内置运算符的运算符,这将允许您进一步概括这一点。

像这样的东西可能会更pythonic:

import operators
ops = [operators.iadd, operators.imul, operators.isub]
# pick your op = ..
# pick your vars = ..
answer = op(var1, var2)

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

最新更新