我看到你的位解释如何导入这些东西并使用它们生成一个随机数,但你能解决这个问题。这是我的计划的(开始阶段):
import random
from operator import add, sub, mul
for x in range(10):
ops = (add, sub, mul)
op = random.choice(ops)
num1, num2 = random.randint(1,10), random.randint(1,10)
int(input("What is %s %s %s?\n" % (num1, op, num2)))
ans = op(num1, num2)
然而,当我执行此代码时,会打印出来:什么是8 1? 我想知道如何以用户友好的方式有效地打印它,例如: "什么是8加1?"
谢谢你解决这个问题!
答案 0 :(得分:2)
也许使用字典而不是元组。
import random
from operator import add, sub, mul
for x in range(10):
ops = {'+': add, '-': sub, '*': mul}
op = random.choice(ops.keys())
num1, num2 = random.randint(1,10), random.randint(1,10)
int(input("What is %s %s %s?\n" % (num1, op, num2)))
ans = ops[op](num1, num2)
答案 1 :(得分:1)
正如Luke所说,op。 name 会打印使用的运算符。如果你想要明确的+ / - / *或添加,乘以/减去你可以参考IDEONE
if op == mul:
int(input("What is %s %s %s?\n" % (num1, 'multiplied by', num2)))
elif op == add:
int(input("What is %s %s %s?\n" % (num1, 'added to', num2)))
elif op == sub:
int(input("What is %s %s %s?\n" % (num1, 'subtracted from', num2)))
else:
print ("randomise error, sorry.")
答案 2 :(得分:0)
简单地改变
(num1, op, num2)
到
(num1, op.__name__, num2)
做你要求的。当然,您可能希望打印+
,-
或*
,这需要简单的if/elif
结构。我会让你弄清楚; D