2010-06-06 18 views
24

método usual de aplicación de las matemáticas a las variables esasignar operador a la variable en python?

a * b 

¿Es capaz de calcular y manipular dos operandos como éste?

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

Entonces ¿Cómo conecto las variables operacionales y dos a y b?
Sé que puedo comparar op para +, -, %, $ y luego asignar y calcular ....

Pero puedo hacer algo como a op b, cómo decirle compilador que op es un operador?

Respuesta

37

Se puede utilizar el módulo de mando y un diccionario:

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

sí, este módulo es genial, lo estoy comprobando, gracias ...... –

+0

Para python 3.x se deben usar 'operator.truediv' o' operator.floordiv' en su lugar https: // docs. python.org/3/library/operator.html –

6

El operador módulo http://docs.python.org/library/operator.html expone funciones que corresponden a la práctica totalidad de los operadores de Python. Puede asignar símbolos de operador a esas funciones para recuperar la función adecuada, luego asignarla a su variable op y calcular op (a, b).

1

Deberá comparar manualmente la cadena ingresada del usuario con su lista de operandos. No hay ningún análogo de int() aquí, ya que los operadores son palabras clave en el lenguaje y no en valores.

Una vez que haya comparado esa cadena de entrada con su lista de operandos y haya determinado el operador al que corresponde, puede usar la biblioteca estándar de Python operator module para calcular el resultado de aplicar el operador a sus dos operandos.

Cuestiones relacionadas