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
Instructions
- Déplacez la logique de calcul du
perimeterdans la fonctionpolygon_perimeter. - Complétez la définition de la fonction
polygon_apothemen y déplaçant la logique présentée dans le contexte. Le modulematha 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_areapour 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))