Rozdział 4 · Python lubi liczby

Konwersja typów liczb

Liczby można przekształcić w siebie nawzajem i w tekst, ale nie zawsze odwrotnie i nie zawsze, jak się wydaje na pierwszy rzut oka.

Każdy typ numeryczny ma własną funkcję transformatora o tej samej nazwie: int(), float(), complex(). Ponadto każdą liczbę można przekonwertować na tekst funkcją str() — i odwrotnie, tekst podobny do liczby może być Odwróć to.

preobrazovanie.py
whole = int(3.99)
print(whole)      #3 – część ułamkowa jest odrzucana zamiast zaokrąglonej

decimal = float(7)
print(decimal)    # 7.0

text = str(42)
print(text, type(text))   # "42" <class 'str'>
int() odrzuca część ułamkową, zamiast zaokrąglać
int(3.99) równa się 3, nie 4 jest obcięcie (truncation) ku zeru, nie zaokrąglając. round() (Rozdział 4.13).

Kierunek obcięcia jest również ważny dla liczb ujemnych — int() zawsze zmierza do zera, a nie „w dół” w sensie matematycznym:

int_otricatelnoe.py
print(int(3.9))   # 3
print(int(-3.9))  #-3 zamiast -4

Przekształć tekst na liczbę

tekst_v_chislo.py
age_text = "10"
age = int(age_text)
print(age + 5)   # 15 — teraz to prawdziwa liczba
Nie każdy tekst da się przekonwertować
int("десять") spowoduje ValueError - Python nie potrafi odczytać liczb w słowach. Można przekonwertować tylko tekst wyglądający jak liczba.

Parsowanie tekstu z określeniem systemu liczbowego

Widzieliśmy to już w sekcji 4.3 – int() potrafi odczytać tekst, który nie jest w stanie Tylko w systemie dziesiętnym:

s_osnovaniem.py
print(int("1010", 2))  # 10
print(int("FF", 16))   # 255
Tworzenie łańcuch znaków z liczb: konkatenacja → f-łańcuch znaków
Klasyczne podejście
age = 10
message = „Wiek: ” + str(age) + „ lat”
print(message)
# koniecznie ręcznie opakować liczbę w str()
Nowoczesny Python 3.14
age = 10
message = f"Wiek: {age} lat"
print(message)
#f-łańcuch znaków wykonuje konwersję wewnątrz samego {}
Co używać dzisiaj: f-stringi (f-strings), pojawiły się w Python 3.6 i od tego czasu stały się standardem. Są krótsze, mniej podatne na błędy (nie trzeba pamiętać o str()) i pozwalają od razu pisać wyrażenia wewnątrz nawiasów klamrowych.
Praktyka: int(), float(), str() i parsowanie baz
interaktywny laptop bezpośrednio w przeglądarce – Python 3.14 przez Pyodide, bez instalacji
Otwórz praktykę →