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 hintsassertPoziom
★★ ś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
Praktyka: Narzędzia do list i słowników
interaktywny laptop bezpośrednio w przeglądarce – Python 3.14 przez Pyodide, bez instalacji