为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用字符或字符串作为放置在操作数之间的运算符?

如何使用字符或字符串作为放置在操作数之间的运算符?

一只甜甜圈 2021-07-28 15:25:10
我想接收运算符(如'+'、'-'、'*'、'/')并直接在代码体中使用。有点像:char = raw_input('enter your operator:')a=1b=5c=a char b    #error! how can i do it?如果用户输入“*”,c 将为 5。如果用户输入“+”,c 将是 6,依此类推。
查看完整描述

3 回答

?
函数式编程

TA贡献1807条经验 获得超9个赞

你可以这样做:


import operator


operations = {'+': operator.add, '-': operator.sub, '*': operator.mul, '/': operator.truediv}


char = raw_input('enter your operator:')

a = 1

b = 5

c = operations[char](a, b)


print c

输出 (对于字符 = +)


6


查看完整回答
反对 回复 2021-08-03
?
慕森王

TA贡献1777条经验 获得超3个赞

或使用:


from operator import *

char = raw_input('enter your operator:')

a=1

b=5

c={'+':add,'-':sub,'*':mul,'/':truediv}

print(c[char](a,b))

或者int.some operator name:


char = raw_input('enter your operator:')

a=1

b=5

c={'+':int.__add__,'-':int.__sub__,'*':int.__mul__,'/':int.__truediv__}

print(c[char](a,b))

两种情况的演示输出:


enter your operator:*

5


查看完整回答
反对 回复 2021-08-03
?
qq_笑_17

TA贡献1818条经验 获得超7个赞

像这样:


a=1

b=2

op = '+'

result = eval('{}{}{}'.format(a, op, b)) # result = 3

您还必须将 a 和 b 转换为字符串eval才能工作。


查看完整回答
反对 回复 2021-08-03
  • 3 回答
  • 0 关注
  • 129 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信