Sto scrivendo il codice per analizzare le stringhe di espressioni matematiche e ho notato che l'ordine in cui gli operatori di potenza concatenati vengono valutati in Python differisce dall'ordine in Excel.
Dal link :
"Quindi, in una sequenza non ripartita di operatori di potenza e unari, gli operatori vengono valutati da destra a sinistra (ciò non vincola l'ordine di valutazione per gli operandi): -1 * 2 risultati in -1 ". *
Questo significa che, in Python:
2**2**3
è valutato come 2**(2**3) = 2**8 = 256
In Excel, funziona in modo inverso: 2^2^3
è valutato come (2^2)^3 = 4^3 = 64
Ora devo scegliere un'implementazione per il mio parser. L'ordine Excel è più facile da implementare, in quanto rispecchia l'ordine di valutazione della moltiplicazione.
Ho chiesto ad alcune persone in ufficio quale fosse il loro istinto per la valutazione di 2^2^3
e ho ottenuto risposte miste.
Qualcuno sa di buone ragioni o considerazioni a favore dell'implementazione di Python? E se non hai una risposta, per favore commenta con il risultato che tu ottieni dall'intuito - 64
o 256
?