Rozdział 13 · Automatyzacja z funkcjami

Mini-Projekty - Konwerter jednostkowy i narzędzia do zbierania

Dwa małe projekty składające się wyłącznie z czystych funkcji – wzorowe kandydaty do niezależnych testów.

Zastosowanie
defreturntype hintsassert
Poziom
★★ średni
Rezultat
zbiór funkcji czystych

Konwerter jednostkowy

Mały projekt z całkowicie czystych funkcji — idealne kandydatury do testowania z §13.24:

konverter.py
def celsius_to_fahrenheit(celsius: float) -> float:
    return celsius * 9 / 5 + 32

def fahrenheit_to_celsius(fahrenheit: float) -> float:
    return (fahrenheit - 32) * 5 / 9

def km_to_miles(km: float) -> float:
    return km * 0.621371

assert celsius_to_fahrenheit(0) == 32
assert celsius_to_fahrenheit(100) == 212
assert round(km_to_miles(10), 2) == 6.21
Ani jednej input(), ani jednej print() w samych funkcjach
Wszystkie trzy funkcje są czyste: wynik zależy całkowicie od argumentu, nie ma skutków ubocznych. Dlatego można je sprawdzać assertbez uruchomienia w ogóle pełnoprawnego programu.

Narzędzia do pracy z kolekcjami

Zestaw małych, skupionych funkcji na szczycie list i słowników z rozdziału 11:

kollekciya_utility.py
def average(scores: list[float]) -> float:
    return sum(scores) / len(scores)

def count_above(scores: list[float], threshold: float) -> int:
    return len([s for s in scores if s > threshold])

def unique_words(text: str) -> set[str]:
    return set(text.lower().split())

def find_top_score(students: list[dict]) -> dict:
    return max(students, key=lambda s: s["score"])
find_top_score używa funkcji jako argumentu
key=lambda s: s["score"] to ta sama kombinacja max()/sorted() + lambda z §13.20 i §13.26, dopiero teraz na liście słowników (rozdział 11, §11.14).
★★ Zadanie samodzielne
Jeszcze jedno narzędzie

Write find_students_below(students threshold) to lista nazwiska uczniów z wynikiem niższym niż threshold. Sprawdź to na 2-3 przykładach w assert.

Praktyka: Konwerter jednostkowy
interaktywny laptop bezpośrednio w przeglądarce – Python 3.14 przez Pyodide, bez instalacji
Otwórz praktykę →
Praktyka: Narzędzia do list i słowników
interaktywny laptop bezpośrednio w przeglądarce – Python 3.14 przez Pyodide, bez instalacji
Otwórz praktykę →