Aan de slagGa gratis aan de slag

Refactoren voor leesbaarheid

Het opsplitsen van langere functies in kleinere onderdelen helpt zowel de leesbaarheid als de modulariteit. In deze oefening ga je een functie refactoren naar kleinere onderdelen. De functie die je gaat refactoren staat hieronder. Let op: in de oefening gebruik je geen docstrings om ruimte te besparen; in een echte toepassing hoort documentatie er wél bij!

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

Deze oefening maakt deel uit van de cursus

Software-engineeringprincipes in Python

Cursus bekijken

Oefeninstructies

  • Verplaats de logica voor het berekenen van de perimeter naar de functie polygon_perimeter.
  • Maak de definitie van de functie polygon_apothem af door de logica uit de context te verplaatsen. De module math is al voor je geïmporteerd.
  • Gebruik de nieuwe unitfuncties om de definitie van polygon_area te voltooien.
  • Gebruik de meer geünitiseerde polygon_area om de oppervlakte te berekenen van een regelmatige zeshoek met zijden van lengte 10.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

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))
Code bewerken en uitvoeren