ПочатиПочніть безкоштовно

Рефакторинг заради читабельності

Рефакторинг довших функцій на менші частини допомагає і з читабельністю, і з модульністю. У цій вправі ви розіб'єте функцію на менші одиниці. Нижче показано функцію, яку потрібно відрефакторити. Зверніть увагу: у вправі ви не використовуватимете докстрінги, щоб зекономити місце; у реальному застосунку обов'язково додавайте документацію!

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

Ця вправа є частиною курсу

Принципи Software Engineering у Python

Переглянути курс

Інструкції до вправи

  • Перемістіть логіку обчислення perimeter у функцію polygon_perimeter.
  • Завершіть визначення функції polygon_apothem, перенісши туди логіку з контексту. Модуль math уже імпортовано для вас.
  • Скористайтеся новими допоміжними функціями, щоб завершити визначення polygon_area.
  • Використайте оновлену, поділену на одиниці polygon_area, щоб обчислити площу правильного гексагона зі сторонами довжини 10.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

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))
Редагувати та запускати код