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.
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 = 10
print(age)
Co się dzieje, gdy age = age + 1
Liczby w Python — niezmienne (immutable) obiekty: sam obiekt
10 nie można „edytować” w 11. Kiedy piszemy:
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:
obliczenie: 10 + 1 → 11
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.
id(age). Liczba (adres obiektu w pamięci dla CPython) zmieni się po ponownym przypisaniu jest wyraźnym potwierdzeniem, że obiekt faktycznie się zmienił.