為提升可讀性進行重構
把較長的函式重構成較小的單元,有助於可讀性與模組化。在本練習中,你會把一個函式重構成多個較小的單元。你要重構的函式如下所示。注意:在此練習中,為了節省空間不會使用 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))