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:
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
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:
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
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:
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}")
Opcjonalnie: napisz mini-„tłumacza”
Ostatnia karta: Jakiego typu numeru potrzebuję?
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ń.