Python/Selezione: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Riga 71:
elif s1=='diviso':
return dividi(s0, s2)
else:
return 'non so eseguire questa operazione'
 
operazione='somma 3 67'
Line 79 ⟶ 81:
print operazione, '==>', eseguioperazione(operazione)
operazione='3 per 8'
print operazione, '==>', eseguioperazione(operazione)
operazione='accalappia 3 8'
print operazione, '==>', eseguioperazione(operazione)
</source>
 
 
=== Altro interprete di operazioni ===
 
Programmino che interpreta una stringa contenente un'operazione da eseguire scritta in lettere, sia in forma prefissa sia in forma infissa. Questa versione usa i dizionari che possono contenere, come valori, anche funzioni. Il risultato è più compatto, più flessibile, più efficiente, più... pythonico.
 
<source lang=python>
def somma(a, b):
return float(a)+float(b)
 
def sottrai(a, b):
return float(a)-float(b)
 
def moltiplica(a, b):
return float(a)*float(b)
 
def dividi(a, b):
return float(a)/float(b)
 
operazioni={'somma': somma, 'sottrai': sottrai,
'moltiplica': moltiplica, 'dividi': dividi,
'piu': somma, 'meno': sottrai,
'per': moltiplica, 'diviso': dividi}
 
def eseguioperazione(stringa):
s0, s1, s2 = stringa.split(' ')
nomeoperazioni=operazioni.keys()
if s0 in nomeoperazioni:
return operazioni[s0](s1, s2)
elif s1 in nomeoperazioni:
return operazioni[s1](s0, s2)
else:
return 'non so eseguire questa operazione'
operazione='somma 3 67'
print operazione, '==>', eseguioperazione(operazione)
operazione='dividi 45 9'
print operazione, '==>', eseguioperazione(operazione)
operazione='45 diviso 9'
print operazione, '==>', eseguioperazione(operazione)
operazione='3 per 8'
print operazione, '==>', eseguioperazione(operazione)
operazione='accalappia 3 8'
print operazione, '==>', eseguioperazione(operazione)
</source>