Python程序,用户友好的查询

时间:2014-10-16 20:33:49

标签: python python-3.x

我看到你的位解释如何导入这些东西并使用它们生成一个随机数,但你能解决这个问题。这是我的计划的(开始阶段):

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?"

谢谢你解决这个问题!

3 个答案:

答案 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