Refactor để dễ đọc hơn
Chia nhỏ các hàm dài thành các đơn vị nhỏ hơn giúp tăng cả tính dễ đọc và tính mô-đun. Trong bài tập này, bạn sẽ refactor một hàm thành các đơn vị nhỏ hơn. Hàm bạn sẽ refactor được hiển thị bên dưới. Lưu ý: trong bài tập, bạn sẽ không dùng docstring để tiết kiệm chỗ; trong ứng dụng thực tế, bạn nên bổ sung tài liệu!
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
Bài tập này là một phần của khóa học
Nguyên tắc Kỹ thuật Phần mềm với Python
Hướng dẫn bài tập
- Di chuyển logic tính
perimetervào hàmpolygon_perimeter. - Hoàn thiện định nghĩa hàm
polygon_apothembằng cách chuyển phần logic đã thấy ở phần ngữ cảnh. Mô-đunmathđã được nhập sẵn cho bạn. - Sử dụng các hàm đơn vị mới để hoàn thiện định nghĩa
polygon_area. - Dùng phiên bản
polygon_areađã chia nhỏ để tính diện tích của một đa giác đều sáu cạnh với độ dài cạnh bằng 10.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
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))