October DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsClean PCRecommendedOne scan can reveal what keeps slowing WindowsLook for cleanup and repair opportunities.Run ScanOctober DealsAmazon USDeal season is back - check today's better picksAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
World desk5 min

Draw a Flower in Python Turtle: 6 Flower Programs with Code

Build six Python Turtle flower designs step by step, learning how loops, arcs, color, filling, and pen movement shape each result.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
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.

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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
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.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

If 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.

If the drawing looks wrong

  • Lines connect parts that should be separate: call pen.penup() before repositioning and pen.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 steps value 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.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Crashes, No Sound, or Screen Glitches?Free driver scan
PC Slower Than It Used to Be?Free scan - under a minute

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.