CommencerCommencer gratuitement

Rafactorer pour améliorer la lisibilité

Refactorer de longues fonctions en unités plus petites améliore à la fois la lisibilité et la modularité. Dans cet exercice, vous allez refactorer une fonction en unités plus petites. La fonction à refactorer est présentée ci-dessous. Remarque : dans l’exercice, vous n’utiliserez pas de docstrings par manque de place ; dans une application réelle, vous devriez inclure une documentation !

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

Cet exercice fait partie du cours

Principes d’ingénierie logicielle en Python

Afficher le cours

Instructions

  • Déplacez la logique de calcul du perimeter dans la fonction polygon_perimeter.
  • Complétez la définition de la fonction polygon_apothem en y déplaçant la logique présentée dans le contexte. Le module math a déjà été importé pour vous.
  • Utilisez les nouvelles fonctions unitaires pour compléter la définition de polygon_area.
  • Utilisez la version plus « unitisée » de polygon_area pour calculer l’aire d’un hexagone régulier dont les côtés mesurent 10.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

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))
Modifier et exécuter le code