Refactoring per la leggibilità
Spezzare funzioni lunghe in unità più piccole migliora sia la leggibilità sia la modularità. In questo esercizio effettuerai il refactoring di una funzione in unità più piccole. La funzione da rifattorizzare è mostrata qui sotto. Nota: nell'esercizio non userai docstring per motivi di spazio; in un'applicazione reale dovresti includere la documentazione!
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
Questo esercizio fa parte del corso
Principi di Ingegneria del Software in Python
Istruzioni dell'esercizio
- Sposta la logica per calcolare il
perimeternella funzionepolygon_perimeter. - Completa la definizione della funzione
polygon_apothem, spostando la logica mostrata nel contesto. Il modulomathè già stato importato per te. - Usa le nuove funzioni di unità per completare la definizione di
polygon_area. - Usa la versione più modulare di
polygon_areaper calcolare l'area di un esagono regolare con lati di lunghezza 10.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
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))