Rozdział 5 · Pobawmy się liczbami!

Kolejność przypisania i obliczeń

Krótszy wpis o zmiennych – oraz pełna mapa tego, co pojawia się najpierw, a co później.

Operacje przydziałowe

Zmiana zmiennej „opartej na samej sobie” score = score + 10 możliwe, ale Python oferuje krótszy wpis:

prisvaivanie.py
score = 0
score += 10   # to samo, co score = score + 10
print(score)  # 10

score -= 3    # score = score - 3
print(score)  # 7
To tworzy NOWY obiekt, a nie zmienia stary
Jak dowiedzieliśmy się w rozdziałach 3 i 4, liczby w Python są niezmienne. score += 10 nie „dodaje” 0 — Python oblicza score + 10, tworzy nowy obiekt 10 i ponownie wiąże nazwę score do tego. Na zewnątrz wygląda to na zmianę, ale w środku to dokładnie ten sam mechanizm, który widzieliśmy w rozdziale 4 age = age + 1.

Takie skróty istnieją dla wszystkich głównych operatorów:

Skrócone nagraniePełne nagranie
x += nx = x + n
x -= nx = x - n
x *= nx = x * n
x /= nx = x / n
x //= nx = x // n
x %= nx = x % n
x **= nx = x ** n

Co jest pierwsze?

Już widzieliśmy kawałki tego obrazu osobno — teraz zbierzemy pełną mapę priorytetu operatorów rozdziału 5, od najwyższego do najniższego:

()
nawiasy zawsze są pierwsze
**
potęgowanie
+x -x
operator jednoargumentowy plus/minus
* / // %
mnożenie, dzielenie, dzielenie całkowite, reszta
+ -
dodatku, odejmowanie
Pełna mapa priorytetu operatorów w tym rozdziale — od najwyższego do najniższego
poryadok.py
print(2 + 3 * 4)     #14 - Najpierw 3 * 4 = 12, potem + 2
print((2 + 3) * 4)   # 20 — nawiasy zmieniają kolejność
+2*34
2 + 3 * 4 = 14 – mnożenie jest wykonywane głębiej w drzewie, czyli wcześniej

Drzewo pokazuje to samo co priorytet: * zainwestowany głębszy, więc najpierw oblicza się, a jego wynik staje się jednym z operandów +.

W razie wątpliwości używaj nawiasów
Nawet gdy kolejność jest formalnie jasna, nawiasy sprawiają, że kod jest bardziej uczciwy dla osoby, która go będzie czytać (w tym dla ciebie za sześć miesięcy). (a + b) * c czyta się szybciej niż trzeba przypominać sobie zasady priorytetu.
Praktyka: Przypisanie i kolejność obliczeń
Ten sam laptop co w sekcji Degrees and Roots – porusza ten temat również
Otwórz praktykę →