Refactorización para mejorar la legibilidad
Refactorizar funciones más largas en unidades más pequeñas puede ayudar tanto a la legibilidad como a la modularidad. En este ejercicio, refactorizarás una función en unidades más pequeñas. La función que refactorizarás se muestra a continuación. Ten en cuenta que, en el ejercicio, no utilizarás cadenas de documentación por motivos de espacio; en una aplicación real, ¡deberías incluir documentación!
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
Este ejercicio forma parte del curso
Principios de ingeniería de software en Python
Instrucciones del ejercicio
- Mueve la lógica para calcular el valor de la función «
perimeter» a la función «polygon_perimeter». - Completa la definición de la función `
polygon_apothem, moviendo la lógica que se ve en el contexto. El módulomath` ya se ha importado. - Utiliza las nuevas funciones de la unidad para completar la definición de
polygon_area. - Utiliza la fórmula más unificada
polygon_areapara calcular el área de un hexágono regular con lados de 10 unidades.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
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))