Rozdział 4 · Python lubi liczby

Kolejność wykonywania operacji

2 + 3 * 4 czy 14 czy 20? Przyjrzyjmy się kolejności, w jakiej Python faktycznie ocenia wyrażenia.

Podobnie jak w matematyce, w Python operacje nie wykonuje się ściśle od lewej do prawej — dla wszystkich operator ma własny priorytet.

primer.py
print(2 + 3 * 4)     #14, nie 20
print((2 + 3) * 4)   # 20 — nawiasy zmieniają kolejność
()
nawiasy — zawsze wykonywane jako pierwsze
**
potęgowanie
+x -x
operator jednoargumentowy plus/minus
* / // %
mnożenie, dzielenie, dzielenie całkowite, reszta
+ -
dodatku, odejmowanie
Kolejność operacji w tym rozdziale to od najwyższego do najniższego priorytetu
To nie jest kompletna tabela
Oficjalna tabela priorytetów Python zawiera znacznie więcej operatorów — porównań, boolea, bit i tak dalej — do których jeszcze nie dotarliśmy. Oto co odnosi się do arytmetyki tego rozdziału. Pełną tabelę można znaleźć w sekcji „Operator precedence”
Zasada dobrych manier
Nawet gdy dokładnie pamiętasz priorytet operatorów, nawiasy prawie nic nie kosztują, a poprawiają czytelność znacząco. Jeśli masz wątpliwości, jak wyrażenie odczyta inna osoba (lub ty sam za pół roku) — dodaj nawiasy.
Praktyka: Ustalcie kolejność operacji
Interaktywny laptop bezpośrednio w przeglądarce – przewidź wynik, a następnie zablokuj
Otwórz praktykę →