Refaktoryzacja dla czytelności
Rozbijanie dłuższych funkcji na mniejsze jednostki poprawia zarówno czytelność kodu, jak i jego modularność. W tym ćwiczeniu zrefaktoryzujesz funkcję, dzieląc ją na mniejsze części. Funkcja do refaktoryzacji jest pokazana poniżej. Uwaga: w ćwiczeniu pomijamy docstringi ze względu na oszczędność miejsca – w prawdziwej aplikacji zawsze warto je dodawać!
def polygon_area(n_sides, side_len):
"""Find the area of a regular polygon
:param n_sides: number of sides
:param side_len: length of polygon sides
:return: area of polygon
>>> round(polygon_area(4, 5))
25
"""
perimeter = n_sides * side_len
apothem_denominator = 2 * math.tan(math.pi / n_sides)
apothem = side_len / apothem_denominator
return perimeter * apothem / 2
To ćwiczenie jest częścią kursu
Zasady inżynierii oprogramowania w Pythonie
Instrukcje do ćwiczenia
- Przenieś logikę obliczania
perimeterdo funkcjipolygon_perimeter. - Uzupełnij definicję funkcji
polygon_apothem, przenosząc do niej odpowiednią logikę widoczną w kontekście. Modułmathjest już zaimportowany. - Wykorzystaj nowe funkcje pomocnicze, aby uzupełnić definicję
polygon_area. - Użyj zmodularyzowanej funkcji
polygon_areado obliczenia pola regularnego sześciokąta o boku równym 10.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
def polygon_perimeter(n_sides, side_len):
return ____
def polygon_apothem(n_sides, side_len):
denominator = ____
return side_len / denominator
def polygon_area(n_sides, side_len):
perimeter = ____
apothem = ____
return perimeter * apothem / 2
# Print the area of a hexagon with legs of size 10
print(____(n_sides=6, side_len=10))