assign operator to variable in python?
You can use the operator module and a dictionary:
import operatorops = { "+": operator.add, "-": operator.sub, "*": operator.mul, "/": operator.div} op_char = input('enter a operand')op_func = ops[op_char]result = op_func(a, b)
The operator module http://docs.python.org/library/operator.html exposes functions corresponding to practically all Python operators. You can map operator symbols to those functions to retrieve the proper function, then assign it to your op variable and compute op(a, b).
I know this is a really old thread, but I believe at the time people didn't know about the eval
function (Maybe it came with Python 3). So here's an updated answer to the question
a = input('enter a value')b = input('enter a value') op = input('enter an operand')expression = a + op + b # simple string concatenationresult = eval(expression)
If the input is not expected to be valid all the time ast.literal_eval
can be used instead. It raises an exception if the input isn't a valid Python datatype, so the code won't be executed if it's not.Eg. if a
, b
and op
are respectively 5, 10, + thenresult
is 15