Eksperymentowałem z możliwościami matematycznymi Pythona i natrafiłem na ciekawe zachowanie. Jest to związane z następującym wyrażeniem:Dlaczego Python nieprawidłowo ocenia to wyrażenie?
(4+4)+3/4/5*35-(3*(5+7))-6+434+5+5+5
>>> 415
Jednakże, jeśli ocena ekspresji ze standardowej kolejności operacji na uwadze, odpowiedź powinna być 420.25. Sprawdziłem również dwukrotnie z WolframAlpha, co daje odpowiedź 420,25. Dlaczego Python podaje inną odpowiedź? Czy ma to coś wspólnego z tym, jak ocenia takie wyrażenia? Czy jest jakaś konwencja, która się podąża? Wszelkie informacje będą bardzo mile widziane, dzięki!
Domyślam się, że jeśli znajdzie '3/4/5 * 35' niejednoznaczne i ocenia to inaczej niż ty. Najlepiej umieścić niektóre nawiasy w tym języku. – inspectorG4dget
Zasady pierwszeństwa w języku programowania mogą nie być iw tym przypadku nie są dokładnie takie same jak w zwykłej matematyce. również w zwykłej matematyce, której ekspresja wynosi około 415.00428571428574 – ChessMaster
Czy próbowałeś tworzyć prostsze przykłady? –