Bắt đầu ngayBắt đầu miễn phí

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

Xem khóa học

Hướng dẫn bài tập

  • Di chuyển logic tính perimeter vào hàm polygon_perimeter.
  • Hoàn thiện định nghĩa hàm polygon_apothem bằng cách chuyển phần logic đã thấy ở phần ngữ cảnh. Mô-đun math đã đượ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))
Chỉnh sửa và Chạy Mã