Kom igångKom igång gratis

Refaktorisering för läsbarhet

Att bryta ned längre funktioner i mindre delar förbättrar både läsbarhet och modularitet. I den här övningen ska du refaktorisera en funktion till mindre enheter. Funktionen du ska refaktorisera visas nedan. Observera att du i övningen inte använder docstrings för att spara utrymme – i en verklig tillämpning bör du alltid inkludera dokumentation!

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

Den här övningen är en del av kursen

Mjukvaruutvecklingsprinciper i Python

Visa kurs

Övningsinstruktioner

  • Flytta logiken för att beräkna perimeter till funktionen polygon_perimeter.
  • Slutför definitionen av funktionen polygon_apothem genom att flytta logiken som visas i kontexten. Modulen math är redan importerad.
  • Använd de nya enhetsfunktionerna för att slutföra definitionen av polygon_area.
  • Använd den mer uppdelade polygon_area för att beräkna arean av en regelbunden hexagon med sidor av längden 10.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

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))
Redigera och kör kod