首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用算术符号而不是内置的函数?

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

Stack Overflow用户
提问于 2015-03-20 23:43:18
回答 2查看 153关注 0票数 3

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

代码语言:javascript
复制
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

这是输出:

代码语言:javascript
复制
6 <built-in function add> 5

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

2.)此外,我如何使这些数字只进行小的计算,得到肯定的答案,这样问题就不会像"5-8“这样的问题。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-20 23:51:40

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

代码语言:javascript
复制
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)

当打印问题时,程序会打印出操作员的标志。要确保没有负数,请在“总计”下面添加以下内容:

代码语言:javascript
复制
while total < 0:
    num1 = random.randint(1,10)
    num2 = random.randint(1,10)
    ops = random.choice(opslist)

    total = (ops(num1,num2))
票数 1
EN

Stack Overflow用户

发布于 2015-03-20 23:50:46

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

代码语言:javascript
复制
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))

可能的结果:

代码语言:javascript
复制
3 - 2 = 1
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29177501

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档