IniziaInizia gratis

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

Visualizza il corso

Istruzioni dell'esercizio

  • Sposta la logica per calcolare il perimeter nella funzione polygon_perimeter.
  • Completa la definizione della funzione polygon_apothem, spostando la logica mostrata nel contesto. Il modulo math è 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_area per 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))
Modifica ed esegui il codice