To draw a flower in Python Turtle, repeat a petal-shaped path and turn by an even angle after each one. The six runnable programs below progress from a flower made of circles to colored, filled petals with a stem and leaves. Each program uses Python’s turtle module; run one at a time in a Python installation with Tk support.
How the flower patterns work
Turtle turns drawing commands into visible output, making it useful for learning programming through shapes. In the examples, a loop repeats a shape and a turn changes the turtle’s heading so the next shape sits around the same center. For n evenly spaced elements, use a turn of 360 / n degrees. The first program’s six circles and 60-degree turns follow a pattern shown in Al Sweigart’s simple Turtle tutorial.
Python’s circle(radius, extent=None, steps=None) draws a full circle by default or an arc when you supply an extent. The turtle’s heading changes by the arc’s extent. Circles are approximated with segments of an inscribed regular polygon; steps can set the segment count, otherwise Turtle chooses automatically. See the Python 3.14.8 Turtle reference for the module’s drawing and pen controls.
1. Six-circle flower
This is the simplest version: each full circle overlaps its neighbors to create a six-petal rosette. Change radius to make the flower larger or smaller.
Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Scan for outdated or missing drivers - takes under a minuteDriver Scan →#1 Best Overall
import turtle
pen = turtle.Turtle()
pen.speed(0)
pen.pencolor("royalblue")
pen.pensize(3)
for _ in range(6):
pen.circle(60)
pen.left(60)
turtle.done()
The loop draws one circle, then turns 60 degrees. After six repetitions, the turtle has turned a full 360 degrees.
2. A looped two-arc petal rosette
Here a helper function groups the two arcs that make one closed, pointed petal. Each arc sweeps 60 degrees on a radius of 80; the 120-degree turn between arcs brings the path back toward its starting point. Repeating the petal six times at 60-degree intervals produces a rosette. This is one constructed geometry, not a standard or canonical flower shape.
Rank #2
import turtle
pen = turtle.Turtle()
pen.speed(0)
pen.pencolor("darkgreen")
pen.pensize(3)
def petal():
for _ in range(2):
pen.circle(80, 60)
pen.left(120)
for _ in range(6):
petal()
pen.left(60)
turtle.done()
Because the arcs are partial circles, their curved edges meet to outline each petal. Try changing the arc radius and extent together to explore different proportions.
3. Arc-based pointed petals
This variation makes each petal from two broad arcs with a sharper point than the second example. Each arc follows radius 100 for 45 degrees; turning 135 degrees between them returns the path toward its start. Six petals use 60-degree spacing.
Recommended Free Tools
import turtle
pen = turtle.Turtle()
pen.speed(0)
pen.pencolor("purple")
pen.pensize(3)
for _ in range(6):
for _ in range(2):
pen.circle(100, 45)
pen.left(135)
pen.left(60)
turtle.done()
The inner loop draws the two arcs in one petal; the outer loop places six petals around the center. Adjusting the radius changes the petal’s scale, while changing the extent changes how far each arc bends.
4. Color-changing petals
The flower geometry stays simple: each petal is a circle, and the turtle turns 60 degrees before drawing the next. Changing the pen color on each pass makes the repeated structure easier to see.
import turtle
pen = turtle.Turtle()
pen.speed(0)
pen.pensize(4)
colors = ["red", "orange", "gold", "green", "blue", "violet"]
for color in colors:
pen.pencolor(color)
pen.circle(60)
pen.left(60)
turtle.done()
The list contains six colors to match the six repetitions. Use pencolor() for the outline; Turtle’s color() can set pen and fill colors together.
5. Filled petals
To fill a petal, begin filling before tracing its closed outline and end filling after the path returns to its start. This example uses two arcs and two straight sides: the arcs form the rounded outer edge and the straight segments close the shape.
Best Value
import turtle
pen = turtle.Turtle()
pen.speed(0)
pen.pensize(2)
for _ in range(6):
pen.fillcolor("hotpink")
pen.begin_fill()
pen.circle(50, 60)
pen.left(120)
pen.circle(50, 60)
pen.left(120)
pen.end_fill()
pen.left(60)
turtle.done()
The paired arcs and turns form a closed path for each fill. Change fillcolor() for another interior color; use pencolor() separately if you want an outline color different from the fill.
6. A complete flower with stem and leaves
This final program combines a six-petal filled rosette with a stem and two filled leaves. It lifts the pen while moving from the flower to the stem and leaves so those repositioning moves do not draw connector lines.
import turtle
pen = turtle.Turtle()
pen.speed(0)
pen.pensize(3)
# Draw six filled petals.
for _ in range(6):
pen.fillcolor("gold")
pen.begin_fill()
for _ in range(2):
pen.circle(45, 60)
pen.left(120)
pen.end_fill()
pen.left(60)
# Move below the flower without drawing a line.
pen.penup()
pen.setheading(270)
pen.forward(80)
pen.pendown()
# Draw the stem upward.
pen.pencolor("forestgreen")
pen.setheading(90)
pen.forward(150)
# Draw one leaf, then reposition for the other.
for direction in (45, 135):
pen.penup()
pen.setheading(direction)
pen.forward(45)
pen.pendown()
pen.setheading(direction + 90)
pen.fillcolor("limegreen")
pen.begin_fill()
for _ in range(2):
pen.circle(30, 60)
pen.left(120)
pen.end_fill()
turtle.done()
In standard Turtle mode, the turtle initially faces east; setheading(90) points north. The stem is drawn upward from below the flower, and each leaf is drawn from a point partway along the stem. Pen-up moves reposition the turtle without marking the canvas; pendown() resumes drawing.
Run the programs and fix common issues
Run one example at a time
Save a code block as a .py file and run it with Python, or paste it into an environment that supports graphical Turtle windows. Each block is standalone. The final turtle.done() keeps the drawing window’s event loop running after the drawing commands finish.
Do these 3 things before closing this tab:
1Fix the driver behind crashes, sound loss and screen glitches2Clear out junk files and repair common Windows errors3Scan for outdated or missing drivers - takes under a minuteIf Turtle cannot import
The Turtle module depends on tkinter. Python installers for Windows and macOS include it, but Linux and other platform packages can vary. If the error mentions _tkinter, install or enable the Tk interface package for your Python distribution, then try again.
Quick Recap
If the drawing looks wrong
- Lines connect parts that should be separate: call
pen.penup()before repositioning andpen.pendown()when drawing should resume. - The flower is clipped: reduce circle radii or move the turtle’s starting position closer to the center of the window.
- Curves look angular: Turtle approximates circles with line segments. For a circle call, you can supply a larger
stepsvalue to use more segments, though this changes the polygon approximation rather than creating a mathematically exact curve.
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




