2010-06-06 130 views
24

应用数学变量,通常的方法是赋值运算符Python中的变量?

a * b 

是它能够计算和操作两个操作数也是这样吗?

a = input('enter a value') 
b = input('enter a value') 
op = raw_input('enter a operand') 

那么我如何连接OP和两个变量ab
我知道我可以比较运到+-%$,然后分配和计算....

,但我可以做这样的事情a op b,如何告诉编译器,op是操作?

回答

37

您可以使用操作模块和词典:

import operator 
ops = {"+": operator.add, 
     "-": operator.sub, 
     "*": operator.mul, 
     "/": operator.div} 
op_char = raw_input('enter a operand') 
op_func = ops[op_char] 
result = op_func(a, b) 
+0

是这个模块很棒,我正在检查它,谢谢...... – 2010-06-06 05:16:50

+0

对于python 3.x,应该使用'operator.truediv'或'operator.floordiv'来代替https:// docs。 python.org/3/library/operator.html – 2017-02-14 21:20:11

6

操作模块http://docs.python.org/library/operator.html暴露对应于几乎所有的Python运营商的功能。你可以操作符号映射到这些功能来恢复正常的功能,然后将其分配给您的运算变量,计算OP(A,B)。

1

你需要用户输入的字符串比较,以你的手的操作数的列表。这里没有类似于int()的操作,因为操作符是语言中的关键字而不是值。

将输入字符串与操作数列表进行比较并确定其对应的运算符后,可以使用Python标准库的operator module来计算将运算符应用于两个操作数的结果。