1. Nauka
  2. /
  3. Kursy
  4. /
  5. Zasady inżynierii oprogramowania w Pythonie

Connected

ćwiczenie

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

Instrukcje

100 XP
  • Przenieś logikę obliczania perimeter do funkcji polygon_perimeter.
  • Uzupełnij definicję funkcji polygon_apothem, przenosząc do niej odpowiednią logikę widoczną w kontekście. Moduł math jest już zaimportowany.
  • Wykorzystaj nowe funkcje pomocnicze, aby uzupełnić definicję polygon_area.
  • Użyj zmodularyzowanej funkcji polygon_area do obliczenia pola regularnego sześciokąta o boku równym 10.