226k views
2 votes
Write a function (named n_pointed_star) to make the turtle draw an n-pointed star. The function should return nothing, and accept a single parameter (n_points) which specifies the number of points to draw.

1 Answer

4 votes

Answer:

import sys

import turtle

import random

def n_pointed_star(total_points):

if total_points <= 4:

raise ValueError('Not enough total_points')

area = 150

for coprime in range(total_points//2, 1, -1):

if greatest_common_divisor(total_points, coprime) == 1:

start = turtle.position()

for _ in range(total_points):

turtle.forward(area)

turtle.left(360.0 / total_points * coprime)

turtle.setposition(start)

return

def greatest_common_divisor(a, b):

while b != 0:

a, b = b, a % b

return a

turtle.reset()

n_pointed_star(5)

Step-by-step explanation:

  • Inside the n_pointed_star function, check whether the total no. of points are less than or equal to 4 and then throw an exception.
  • Loop through the total_points variable and check whether the result from greatest_common_divisor is equal to 1 or not and then set the starting position of turtle and move it.
  • Create the greatest_common_divisor which takes two parameters a and b to find the GCD.
  • Finally reset the turtle and call the n_pointed_star function.
User Proxpero
by
5.2k points