Sto scrivendo codice per analizzare stringhe di espressioni matematiche e ho notato che l'ordine in cui gli operatori di potenza incatenati vengono valutati in Python differisce dall'ordine in Excel.
Da http://docs.python.org/reference/expressions.html :
"Pertanto, in una sequenza non differenziata di potenza e operatori unari, gli operatori vengono valutati da destra a sinistra (ciò non limita l'ordine di valutazione per gli operandi): -1 * 2 risulta in -1." *
Ciò significa che, in Python:
2**2**3
viene valutato come2**(2**3) = 2**8 = 256
In Excel, funziona al contrario: 2^2^3
viene valutato come(2^2)^3 = 4^3 = 64
Ora devo scegliere un'implementazione per il mio parser. L'ordine di Excel è più facile da implementare, poiché rispecchia l'ordine di valutazione della moltiplicazione.
Ho chiesto ad alcune persone in ufficio quale fosse il loro istinto per la valutazione 2^2^3
e ho ottenuto risposte contrastanti.
Qualcuno è a conoscenza di buoni motivi o concondizioni a favore dell'implementazione di Python? E se non hai una risposta, per favore commenta con il risultato che ottieni da budello - 64
o 256
?