如何使用算术符号而不是内置函数

2024-09-28 16:58:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用python做一个数学测验,使用3个运算符:加减乘。我想使用算术运算符,但我发现这很困难,因为python只是将它作为符号读入,如果我只是打印它。我使用以下代码:

import random
import operator
opslist = [          # This is the bit that I want to change, i also want 
    operator.add,    # the operators all on one line
    operator.sub,
    operator.mul
]

num1 = random.randint(1,10)  # These are two random numbers for my quiz
num2 = random.randint(1,10)
ops = random.choice(opslist) #Random operator for my quiz

total = (ops(num1,num2))    # Answer for my quiz

print (num1,ops,num2)       # Random question for my quiz

这是输出:

^{pr2}$

1.)如何使输出“6+5”

2.)另外,我如何让这些数字只做一些小的计算,从而得到肯定的答案,这样问题就永远不会是“5-8”之类的东西


Tags: theimportformy运算符randomquizoperator
2条回答

我也会在你的代码中使用字典。我就是这么做的。在

import random
import operator

opslist= {
    operator.add: "+",    # the operators all on one line
    operator.sub: "-",
    operator.mul: "x"
}

num1 = random.randint(1,10)  # These are two random numbers for my quiz
num2 = random.randint(1,10)
ops = random.choice(list(opslist.keys())) #Random operator from opslist keys

total = (ops(num1,num2)) # Answer for my quiz

print(num1,opslist[ops],num2)

打印问题时,程序会为操作员打印出标牌。为了确保您不会得到负数,请在“总计”下添加以下内容:

^{pr2}$

可以使用字典将操作映射到其符号表示形式。您还可以添加一些减法逻辑,以确保num2低于num1

import random
import operator
ops = {
    operator.add: '+', 
    operator.sub: '-',
    operator.mul: '*'
}
num1, num2 = random.randint(1, 10), random.randint(1, 10)
op = random.choice(ops.keys())
if op != operator.sub or num2 <= num1:
    print "%d %s %d = %d" % (num1, ops[op], num2, op(num1, num2))

可能的结果:

^{pr2}$

相关问题 更多 >