7 Estrellas regulares
7.1 Tarea
El reto consiste en programar una función que dibuje estrellas como la que aparece a continuación con un número de puntas dado.

Para ello hay que utilizar el módulo de Python Turtle que permite realizar trazos sencillos en una ventana gráfica.
En el siguiente video hay una introducción básica al módulo Turtle.
Ver el vídeo de introducción a Turtle en YouTube
Y también dispones de una hoja de resumen con las principales funciones de Turtle.
TipSolución
def estrella(puntas, lado=150):
''' Función que dibuja una estrella regular de un número de puntas dado haciendo uso del módulo Turtle.
Parámetros:
- puntas: Es un entero con el número de puntas de la estrella.
- lado: Es un entero con el tamaño de los lados de la estrella.
'''
import turtle
# Función para calcular el máximo común divisor de dos números enteros por el algoritmo de euclides. Se necesita para calcular el ángulo de rotación.
def mcd(a, b):
while b != 0:
a, b = b, a % b
return a
# Condicional para avisar de que el número de puntas debe ser mayor que 4. Si no no es posible dibujar la estrella.
if puntas <= 4:
print('El número de puntas es demasiado pequeño. Prueba de nuevo con un número de puntas mayor.')
return
# El ángulo de rotación en los vértices de la estrella se calcula en fución del primer número entero coprimo con el número de puntas
# Bucle iterarivo para buscar el mayor coprimo con el número de puntas
for i in range(puntas // 2, 1, -1):
# Condicional para ver si i y el número de puntas son números coprimos
if mcd(puntas, i) == 1:
angle = 360.0 / puntas * i
break
# Bucle iterativo para dibujar los trazos de cada punta.
for _ in range(puntas):
# Dibujamos el lado
turtle.forward(lado)
# Rotamos el cursor
turtle.left(angle)
return
estrella(20)