Rozdział 4 · Python lubi liczby

Czym jest liczba dla komputera

Zanim przejdziemy do typów liczb, zastanówmy się, co oznacza „liczba”

Człowiek widzi liczby jako pojęcia abstrakcyjne: 10, 3.14, 1/3, nawet . Komputer natomiast nie „rozumie” Wydajność: Specyficzna sekwencja bajtów przez Konkretne zasady.

Numer wmatematyce10, 3.14, 1/3, ∞Reprezentacja wkomputerkonkretny sposóbprzechowywaniaRezultatobliczeniaczasami dokładny, czasami- nie
Liczba matematyczna i jej reprezentacja w komputerze — są powiązane, ale nie zawsze się pokrywają

Dla liczb całkowitych to rozróżnienie jest niemal niezauważalne—reprezentacja komputerowa zachowuje się Tak jak liczba w matematyce. Ale dla liczb ułamkowych różnica staje się istotna — i my również Przeanalizujemy ją szczegółowo w sekcjach 4.10–4.11, gdy przejdziemy do float. Na razie wystarczy pamiętać o samej zasadzie: co piszesz w kodzie i co faktycznie jest przechowywane wewnątrz znajdują się powiązane, ale niekoniecznie identyczne rzeczy.

Nazwy wskazują na cechy liczbowe

W rozdziale 3 omówiliśmy ważną zasadę: nazwa (zmienna) nie jest „pudełkiem”

age.py
age = 10
print(age)
age 10
age wskazuje obiekt liczbą 10 — nie „zawiera” go

Co się dzieje, gdy age = age + 1

Liczby w Python — niezmienne (immutable) obiekty: sam obiekt 10 nie można „edytować” w 11. Kiedy piszemy:

age2.py
age = 10
age = age + 1
print(age)  # 11

nie jest edycją, lecz ponownym przypisaniem, Python oblicza nową wartość i Zmusza nazwę do wydania age wskazać na NOWY obiekt:

age (do)10
PRZED: age oznacza 10

obliczenie: 10 + 1 → 11

age (po)11
PO: age wskazuje na nowy obiekt 11 – stary obiekt 10 nie jest już potrzebny
Precyzyjne sformułowanie jest ważne
Python nie „zmienił liczby 10 na 11” niezmienne: Python oblicza wynik 10 + 1otrzymał nowy przedmiot 11 i przydzielono nazwę na nowo age do tej nowej placówki. To dokładnie ten sam model "nazw → obiekt" i "przypisanie zmienia relację, a nie sam obiekt", o którym rozmawialiśmy w rozdziale 3.

Będziemy wracać do zasady niezmienności przez cały kurs – to wyjaśnia zachowanie łańcuch znaków, krotk oraz (w przeciwieństwie do tego) dlaczego listy się zachowują w przeciwnym razie, gdy do nich dochodzimy w kolejnych rozdziałach.

Spróbujmy
Wpisz ten przykład w przeglądarce lub w REPL (Rozdział 3) — i sprawdź po każdej linii id(age). Liczba (adres obiektu w pamięci dla CPython) zmieni się po ponownym przypisaniu jest wyraźnym potwierdzeniem, że obiekt faktycznie się zmienił.
Praktyka: Liczby jako obiekty, nie pudełka
interaktywny laptop bezpośrednio w przeglądarce – Python 3.14 przez Pyodide, bez instalacji
Otwórz praktykę →