1. 학습
  2. /
  3. 강의
  4. /
  5. Pythonで学ぶSoftware Engineeringの原則

Connected

연습 문제

読みやすさのためのリファクタリング

長い関数を小さな単位に分割してリファクタリングすると、可読性とモジュール性の両方が向上します。この演習では、ある関数を小さな単位に分割してリファクタリングします。対象の関数は次のとおりです。なお、演習ではスペース節約のため 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

지침

100 XP
  • perimeter の計算ロジックを polygon_perimeter 関数へ移動してください。
  • コンテキストにあるロジックを移して、polygon_apothem 関数の定義を完成させてください。math モジュールはすでにインポート済みです。
  • 新しく作った単一用途の関数を使って、polygon_area の定義を完成させてください。
  • より単位化した polygon_area を使って、一辺の長さが 10 の正六角形の面積を計算してください。