2010-06-06 13 views
24

metodo usuale di applicazione della matematica alle variabili èassegna l'operatore alla variabile in python?

a * b 

E 'in grado di calcolare e manipolare due operandi come questo?

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

E allora come faccio a collegare op e due variabili a e b?
So che posso confrontare op per +, -, %, $ e quindi assegnare e calcolare ....

Ma posso fare qualcosa di simile a op b, come dire che il compilatore op è un operatore?

risposta

37

È possibile utilizzare il modulo operatore e un dizionario:

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ì, questo modulo è ottimo, lo sto verificando, grazie ...... –

+0

Per python 3.x è necessario utilizzare invece 'operator.truediv' o' operator.floordiv' invece di https: // docs. python.org/3/library/operator.html –

6

L'operatore modulo http://docs.python.org/library/operator.html espone le funzioni corrispondenti a praticamente tutti gli operatori Python. È possibile associare i simboli operatore a quelle funzioni per recuperare la funzione corretta, quindi assegnarla alla variabile op e calcolare op (a, b).

1

È necessario confrontare a mano la stringa immessa dall'utente nell'elenco di operandi. Non esiste un analogo di int() qui, poiché gli operatori sono parole chiave nella lingua e non valori.

Dopo aver confrontato la stringa di input con l'elenco di operandi e determinato l'operatore a cui corrisponde, è possibile utilizzare la libreria standard Python operator module per calcolare il risultato dell'applicazione dell'operatore ai due operandi.

Problemi correlati