How to Draw a Smiling Face Using Python Turtle?

I’ve been coding in Python for over a decade, and one of the most enjoyable ways to introduce programming concepts is through graphics. Python’s Turtle module is a fantastic tool for this. It’s simple, visual, and perfect for beginners. In this tutorial, I’ll show you how to draw a smiling face using Python Turtle.

Creating a smiling face might sound basic, but it’s a great way to get comfortable with drawing shapes, positioning the turtle, and using colors. Plus, it’s fun to see your code come alive in a friendly face.

Methods to Draw a Smiling Face Using Python Turtle

Now, I will explain to you the methods to draw a smiling face using Python Turtle.

1: Draw a Smiling Face with Basic Shapes

This is the most straightforward approach. We’ll use circles for the face and eyes, and an arc for the smile.

Step 1: Set up the Turtle environment
Start by importing the Turtle module and setting up the screen and turtle object.

import turtle

screen = turtle.Screen()
screen.title("Smiling Face with Python Turtle")

t = turtle.Turtle()
t.speed(3)

Step 2: Draw the face outline
The face will be a big yellow circle.

t.penup()
t.goto(0, -100)  # Move turtle to bottom center of the face
t.pendown()
t.color("yellow")
t.begin_fill()
t.circle(100)  # Radius 100
t.end_fill()

Step 3: Draw the eyes
Two smaller black circles represent the eyes.

# Left eye
t.penup()
t.goto(-40, 20)
t.pendown()
t.color("black")
t.begin_fill()
t.circle(15)
t.end_fill()

# Right eye
t.penup()
t.goto(40, 20)
t.pendown()
t.begin_fill()
t.circle(15)
t.end_fill()

Step 4: Draw the smile
We’ll draw an arc to simulate a smile.

t.penup()
t.goto(-40, -20)
t.pendown()
t.width(5)
t.color("black")
t.setheading(-60)
t.circle(50, 120)  # Draw an arc with radius 50 and extent 120 degrees

Step 5: Finish up
Hide the turtle and keep the window open.

t.hideturtle()
screen.mainloop()

You can refer to the below screenshot to see the output.

smiley face python

This method is simple and effective. The smile arc is created using the circle function with an extent, which is a neat trick I’ve used in many projects.

Read Python Turtle Grid

2: Smiling Face with Detailed Features

If you want to add more personality, you can include eyebrows, a nose, and color variations.

Step 1: Draw the face and eyes
Use the same steps as Method 1 for the face and eyes.

Step 2: Add eyebrows
Draw small lines above the eyes.

# Left eyebrow
t.penup()
t.goto(-55, 50)
t.pendown()
t.width(3)
t.setheading(20)
t.forward(30)

# Right eyebrow
t.penup()
t.goto(25, 50)
t.pendown()
t.setheading(160)
t.forward(30)

Step 3: Draw the nose
A simple triangle can represent the nose.

t.penup()
t.goto(0, 10)
t.pendown()
t.color("orange")
t.begin_fill()
t.setheading(-90)
t.forward(20)
t.left(120)
t.forward(20)
t.left(120)
t.forward(20)
t.end_fill()

Step 4: Add cheeks (optional)
Draw two small pink circles for cheeks.

# Left cheek
t.penup()
t.goto(-70, -10)
t.pendown()
t.color("pink")
t.begin_fill()
t.circle(15)
t.end_fill()

# Right cheek
t.penup()
t.goto(70, -10)
t.pendown()
t.begin_fill()
t.circle(15)
t.end_fill()

Step 5: Smile
Use the same arc technique from Method 1.

You can refer to the below screenshot to see the output.

python smiley face

This more detailed version adds character and is still easy to code. It’s a great way to practice combining shapes and colors.

Check out Draw a Flower in Python Turtle

3: Use Functions for Reusability

When you start making more complex drawings, organizing your code into functions is a lifesaver. Here’s how you can encapsulate drawing parts of the face.

def draw_circle(turtle_obj, x, y, radius, color):
    turtle_obj.penup()
    turtle_obj.goto(x, y - radius)
    turtle_obj.pendown()
    turtle_obj.color(color)
    turtle_obj.begin_fill()
    turtle_obj.circle(radius)
    turtle_obj.end_fill()

def draw_smile(turtle_obj, x, y):
    turtle_obj.penup()
    turtle_obj.goto(x, y)
    turtle_obj.pendown()
    turtle_obj.width(5)
    turtle_obj.color("black")
    turtle_obj.setheading(-60)
    turtle_obj.circle(50, 120)

You can refer to the below screenshot to see the output.

Use these functions to draw the face, eyes, and smile. This makes your code cleaner and easier to modify later.

Read Python Turtle Star

Tips From My Experience

  • Use t.speed() to control the drawing speed. Slower speeds help beginners follow along.
  • Experiment with colors to make your face more expressive.
  • Use turtle.Screen().bgcolor() to change the background color for contrast.
  • Save your code in .py files and run them from the command line or IDE for best results.

Creating graphics with Python Turtle is not just fun but also builds foundational programming skills. Drawing a smiling face is a great project to start with, and from here, you can explore animations, games, and more complex art.

Try out these methods, tweak the parameters, and make your unique smiling faces. Happy coding!

You may like to read:

51 Python Programs

51 PYTHON PROGRAMS PDF FREE

Download a FREE PDF (112 Pages) Containing 51 Useful Python Programs.

pyython developer roadmap

Aspiring to be a Python developer?

Download a FREE PDF on how to become a Python developer.

Let’s be friends

Be the first to know about sales and special discounts.