開始使用免費開始

為提升可讀性進行重構

把較長的函式重構成較小的單元,有助於可讀性與模組化。在本練習中,你會把一個函式重構成多個較小的單元。你要重構的函式如下所示。注意:在此練習中,為了節省空間不會使用 docstring;在實際應用中,你應該加入文件說明!

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

本練習屬於課程

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))
編輯並執行程式碼