Rozdział 4 · Python lubi liczby

int — liczby całkowite bez obaw o duże wartości

Liczby całkowite w Python mogą rosnąć znacznie bardziej niż w większości innych języków — i jednocześnie pozostają obiektami niezmiennymi.

int (integer jest liczbą całkowitą) jest typem liczb bez ułamków części: dodatnie, ujemne i zero.

celye.py
print(0)
print(42)
print(-17)
print(type(42))

Liczby z niemal zerowym limitem wielkości

W przeciwieństwie do wielu innych języków programowania, gdzie liczby całkowite są ograniczone stały zakres (np. 32 lub 64 bity), w Python int może rosnąć tak bardzo – dokładność dowolny, ograniczone w praktyce tylko dostępna pamięć komputera, nie język.

bolshoe_chislo.py
huge = 10 ** 100
print(huge)
Dokładne sformułowanie
Poprawnie mówi się „dowolna precyzja ograniczona dostępnymi zasobami”, a nie „nieograniczona wielkość”. Formalnie istnieje limit — ale w praktyce prawie nigdy go nie osiągniesz w zwykłych programach.

liczby są niezmienne – ciąg dalszy

Widzieliśmy to już w sekcji 4.1 na przykładzie age. Znowu, już z dwoma nazwami:

a_b.py
a = 10
b = a
a += 1
print(a)  # 11
print(b)  # 10 — b się nie zmienił
a11b10
Po a += 1: a ma nowe połączenie; b nadal wskazuje na stary obiekt
Nie używaj id() jako triku naukowego do „kasha liczb całkowitych”
Możesz gdzieś natknąć się na porównanie id(256) oraz id(257) jako „dowód”

bool jest szczególnym krewnym int

Wartości True oraz False forma Typ bool — i historycznie jest ściśle związany z int: True zachowuje się jak 1, a False — jak 0.

bool_int.py
print(int(True))   # 1
print(int(False))  # 0
print(True + True) # 2
Ale w normalnym kodzie — to wartości logiczne
To, co bool technicznie „liczbowy” — element języka, a nie wezwanie do dodawania True + True w rzeczywistym kodzie. Więcej informacji o warunkach i logice można znaleźć w rozdziale o warunkach; tutaj wystarczy znać związek z liczbami, jeśli gdzieś go znajdziesz.

Podkreślenia separatorów dla czytelności

W długich liczbach łatwo stracić rachubę zer. Python pozwala na podzielenie liczby Podkreślenia — nie wpływają one na znaczenie, a jedynie na czytelność:

naselenie.py
population = 38_000_000
print(population)  # 38000000

Skrócone przydziały

Operatorzy tacy jak += jest zwartym zapisem "liczenia i przydzielić" zamiast "zmienić numer na miejscu":

augmented.py
x = 10
x += 1   # to samo co x = x + 1
x -= 2   # tak samo jak x = x - 2
x *= 3   # tak samo jak x = x * 3
Praktyka: duże liczby i niezmienność int
interaktywny laptop bezpośrednio w przeglądarce – Python 3.14 przez Pyodide, bez instalacji
Otwórz praktykę →