Rozdział 4 · Python lubi liczby

Mini-projekty i wyniki rozdziałów

Zebranie wszystkiego, co omówiliśmy, w trzy małe, ale realne projekty — i podsumowanie rozdziału ostateczną mapą wyboru typu numerycznego.

Trzy małe, ale prawdziwe projekty — każdy używa tylko tego, co już omówiliśmy w tym rozdziale (i w rozdziale 3).

Kalkulator zakupu A: projektu

wpisz cenę i ilość, oblicz kwotę. Porównaj float i Decimal na tym samym Przykład:

kalkulyator_pokupki.py
from decimal import Decimal

# Wersja na float — zwykła, ale z ryzykiem błędu
price_float = 19.99
quantity = 3
print(price_float * quantity)  # 59,97 – zbiegło się to tutaj, ale nie zawsze tak szczęśliwie

# Decimal Wersja – Przewidywalna dokładność za pieniądze
price_decimal = Decimal("19.99")
print(price_decimal * quantity)  # 59,97 — dokładnie, gwarantowane
Podstawowa praktyka
Challenge

Dodaj podatek (na przykład 23%) do kwoty Decimal. wersji

Projekt B: Przetwornik Czasu

Wprowadzamy łączną liczbę sekund — liczymy godziny, minuty i sekundy przez // oraz % (Rozdział 4.7) — tutaj operatorzy mają teraźniejszość Zastosowanie:

konverter_vremeni.py
total_seconds = 3725

hours = total_seconds // 3600
minutes = (total_seconds % 3600) // 60
seconds = total_seconds % 60

print(f"{hours}godziny {minutes}m {seconds}z")  # 1h 2m 5s
★★ Zadanie samodzielne
Challenge

Testuj swoją funkcję przez 0 sekund i przez 90000 sekund (więcej niż jeden dzień).

Projekt C: kalkulator geometryczny

Wprowadzamy promień okręgu — liczymy średnicę, obwód i pole za pomocą math.pi:

geometricheskij.py
import math

radius = 5
diameter = radius * 2
circumference = 2 * math.pi * radius
area = math.pi * radius ** 2

print(f"Średnica: {diameter}")
print(f"Obwód: {circumference:.2f}")
print(f"Obszar: {area:.2f}")
Challenge
Challenge · Systemy liczbowe

Opcjonalnie: napisz mini-„tłumacza”

Praktyka: mini-projekty rozdziału 4
Interaktywny laptop bezpośrednio w przeglądarce – kup kalkulator, konwerter czasu, geometrię
Otwórz praktykę →

Ostatnia karta: Jakiego typu numeru potrzebuję?

Jaki typ/liczbowy/ narzędzie jest mi potrzebne?
Potrzebujesz całego rachunku?"
int
Potrzebny zwykły pomiar ułamkowy?
float
Potrzebujesz dokładnej kwoty dziesiętnej (pieniędzy)?
Decimal
Czy potrzebujesz dokładnej części p/q?
Fraction
Czy potrzebujesz prawdziwej + wyimaginowanej części?
complex
Czy potrzebujesz gotowych funkcji matematycznych?
math / cmath
Potrzebujesz losowości w grach/symulacjach?
random
Czy potrzebna jest losowość dla bezpieczeństwa?
secrets
Rozdział 4 Mapa Podsumowania – Wracaj do niej w przyszłych projektach

Podsumowanie rozdziału

Co możemy teraz zrobić

  • Zrozumieć różnicę między liczbą matematyczną a jej reprezentacją w komputerze oraz że nazwy odnoszą się do niezmiennych obiektów liczbowych — a nie do „pudełek”
  • Pewnie pracuj z int: arbitralną precyzją, łącząc bool, podkreślenia i separatory.
  • Rozumiemy układy liczbowe — decimal/binary/octal/hex — i wiemy, jak je przeliczać.
  • Znamy pełny zestaw operatorów arytmetycznych i ich kolejność wykonywania.
  • Rozróżniamy /, // i % — i rozumiemy, jak działa ujemne floor- dzielenie.
  • Zrozumieć, dlaczego 0,1 + 0,2 nie jest dokładnie 0,3 i wiemy, jak porównać float przez math.isclose().
  • Potrafimy zaokrąglać liczby przy użyciu round(), floor(), ceil() i trunc() — i znamy różnicę dla liczb ujemnych.
  • Wiedzieć, kiedy używać Decimal (pieniądze) i Fraction (dokładne ułamki) zamiast float.
  • Rozumiemy complex i złożoną płaszczyznę, wiemy, jak korzystać z math/cmath, random/secrets i statistics.
  • Potrafimy rozpoznawać inf i nan oraz debugować typowe błędy liczbowe.
  • Zebrałem trzy mini-projekty, które wykorzystują Python liczby do rzeczywistych zadań.
co dalej
W rozdziale 5 będziemy kontynuować pracę z liczbami — porównania, operacje logiczne i pierwsze konstrukcje warunkowe.