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
Övningsinstruktioner
- Flytta logiken för att beräkna
perimetertill funktionenpolygon_perimeter. - Slutför definitionen av funktionen
polygon_apothemgenom att flytta logiken som visas i kontexten. Modulenmathär redan importerad. - Använd de nya enhetsfunktionerna för att slutföra definitionen av
polygon_area. - Använd den mer uppdelade
polygon_areafö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))