Home Python How to draw 4 squares in Python

How to draw 4 squares in Python

“Turtle” is a Python function that works by providing a drawing board and allows you to order a turtle to draw on it! The turtle needs to be moved around for a drawing to appear on the screen. This can be achieved by using functions like forward(), backward(), left() and right().

You can switch the turtle around with functions like turtle.forward(…) and turtle.left(…).

You must first import a turtle before you can use it. We suggest practicing with it in the interactive interpreter first, as working with files requires a little more effort. Simply type the following command into your terminal:

import turtle

Do you have the error message “No module called _tkinter” while working with Ubuntu? sudo apt-get install python3-tk installs the missing package.

sudo apt-get install python3-tk

The turtle.forward(…) function instructs the turtle to advance the specified distance. The number of degrees you want to rotate to the left is passed to turtle.left(…). On the other hand, you turtle.backward(…) if you want to move backwards by the distance value provided as a parameter. Also, use turtle.right(…)  if you wish to rotate the turtle by the given number of degrees towards the right.

Do you want to start over?

To clear the drawing your turtle has made so far, use turtle.reset(). We’ll go over turtle in greater depth in the subsequent sections with examples so that you can master the concepts better.

The typical turtle is nothing more than a triangle. That’s not a good time! Instead of a turtle, let’s make it a turtle using the command turtle.shape() as shown below.

turtle.shape("turtle")

You may have noticed that the turtle window vanishes after the turtle completes its movement if you saved the commands to a file. This is due to Python exiting when the turtle has completed its movement. Python owns the turtle window, so it goes away as well. Place turtle.exitonclick() at the bottom of your file to avoid this. The window will now remain open until you click on it:

import turtle

turtle.shape("turtle")

turtle.forward(25)

turtle.exitonclick()

Drawing a Square

You’ll probably need a right angle, which is 90 degrees, to make a square.

Drawing a square  Anti-Clockwise

import turtle
my_turtle =turtle.Turtle()
my_turtle.shape('turtle')
drawing_area =turtle.Screen()
drawing_area.title("tuts@codeunderscored: Drawing a Square Anti-Clockwise")
# my_turtle.penup()
my_turtle.forward(200)
my_turtle.left(90)
my_turtle.forward(200)
my_turtle.left(90)
my_turtle.forward(200)
my_turtle.left(90)
my_turtle.forward(200)
my_turtle.left(90)
drawing_area.exitonclick()
Drawing a Square Anti-Clockwise
Drawing a Square Anti-Clockwise

Drawing a square Clockwise

import turtle
my_turtle =turtle.Turtle()
my_turtle.shape('turtle')
drawing_area =turtle.Screen()
drawing_area.title("tuts@codeunderscored: Drawing a Square Clockwise")
my_turtle.left(90)
my_turtle.forward(200)
my_turtle.right(90)
my_turtle.forward(200)
my_turtle.right(90)
my_turtle.forward(200)
my_turtle.right(90)
my_turtle.forward(200)
my_turtle.right(90)
drawing_area.exitonclick()
Drawing a Square Clockwise
Drawing a Square Clockwise

Optimized code to draw a square

import turtle
my_turtle =turtle.Turtle() # create instance of the turtle
my_turtle.shape('turtle') # set the shape of the turtle to that of the turtle
drawing_area =turtle.Screen() # create the screen
drawing_area.title("tuts@codeunderscored: Optimizing drawing a square ")
my_turtle.pendown() # lift the pen up so when the turtle moves, it will not leave a trace behind
my_turtle.left(90) #
for i in range(4):
  my_turtle.forward(200)
  my_turtle.right(90)
drawing_area.exitonclick()

Keep in mind

Before and after drawing the square, note how the turtle begins and finishes in the same position, facing the same way. This is a helpful convention to observe since it makes drawing different shapes later on much simpler.

Added value

If you want to be more imaginative, use the turtle.width(…) and turtle.color(…) functions to change the form. How do you make use of these features? You must first learn the signature of a feature before you can use it. For example what to put between the parentheses and what those things mean.

In the Python shell, type help(turtle.color) to find out more. Python can bring it into a pager, which allows you to scroll up and down in case there is a lot of text. To exit the pager, press the q key.

Is this an error ?

NameError: the name turtle is not specified
NameError: the name turtle is not specified

When trying to get support, you get a NameError: the name ‘turtle’ isn’t specified. In Python, you must import names before you can refer to them, so you’ll need to import turtle before using help(turtle.color) in a new Python interactive shell as shown below.

help on turtle color
help on turtle color

You should tell the turtle to delete its drawing board with the turtle if you make a mistake.

Use the reset() directive or undo the most recent move using the command undo().

You can change the color with turtle.color, as you might have read in the aid. The color string passed as a parameter includes the colors “red,” “green,” and “violet,” among others. For instance turtle.color(colorstring) where the colorstring can be red, green etc. A comprehensive list can be found in the color manual available in the help feature.

Be sure to run turtle.colormode(255) first if you want to set an RGB value. You might, for example, use turtle.color(75,0,130) to set the color as indigo.

Demonstration of how to draw a square with four different colors

window = turtle.Screen()
window.bgcolor("lightgrey")
window. title("tuts@codeunderscored:~ Demonstrate how to draw a square with 4 colors")
my_turtle = turtle.Turtle()
my_turtle.pendown()
for current_color in ["red", "green", "purple", "blue"]:
  my_turtle.pensize(10)
  my_turtle.color(current_color)
  my_turtle.forward(200)
  my_turtle.left(90)
window.exitonclick()

Example 1

"""
Example 2
"""

import turtle

def drawSquares(my_turtle, length_of_side, count_squares, distance_apart):

"""
:param my_turtle: instance of the turtle
:param length_of_side: initial length of the square e.g 200 before drawing the inner squares
:param count_squares: determines how many squares exist e.g 5 means the count of squares is 5
:param distance_apart: distance from once square to the next
:return:
"""

for n in range(count_squares):
for _ in range(4):
my_turtle.forward(length_of_side)
my_turtle.left(90)

my_turtle.penup()
x, y = my_turtle.position()
my_turtle.goto(x + distance_apart / 2, y + distance_apart / 2)
my_turtle.pendown()
length_of_side -= distance_apart

if __name__=='__main__':
  window = turtle.Screen() # Setting up the attributes and thee window
  window.bgcolor("lightgreen")
  window.title("tuts@codeunderscored: ~ Example 1: How to draw 4 Squares in Python")

  new_turtle = turtle.Turtle()
  new_turtle.penup()
  new_turtle.goto(60, 60)
  new_turtle.pendown()
  drawSquares(new_turtle, 200, 4, 10)
  turtle.done()

Example 1:How to draw 4 Squares in Python
Example 1:How to draw 4 Squares in Python

Example 2

"""
Example 2
"""
def drawSquares(my_turtle, side_length, no_of_squares, distance_apart):

"""
:param my_turtle: instance of the turtle
:param side_length: initial length of the square e.g 200 before drawing the inner squares
:param no_of_squares: determines how many squares exist e.g 5 means the count of squares is 5
:param distance_apart: distance from once square to the next
:return:
"""

new_turtle = my_turtle.clone() # turtle cloning to avoid restoring changes

new_turtle.shape("square") # turtle shape modification for stamping
new_turtle.fillcolor(turtle.bgcolor()) # modify turtle fill color for stamping

for _ in range(no_of_squares):
new_turtle.turtlesize(side_length / 20) # the magic number 20 is the stamp’s default size
new_turtle.stamp()
side_length -= distance_apart

if __name__=='__main__':
  window = turtle.Screen() # Setting up the window and its attributes
  window.bgcolor("grey")
  window.title("tuts@codeunderscored: ~ Example 2: How to draw 4 Squares in Python")

  new_turtle = turtle.Turtle()
  new_turtle.penup()
  new_turtle.goto(10, 10)
  new_turtle.pendown()
  drawSquares(new_turtle, 200, 4, 10)
  turtle.done()


Example 2: How to draw 4 Squares in Python
Example 2: How to draw 4 Squares in Python

Example 3

"""
Example 3
"""
def drawSquares(my_turtle, side_length, no_of_squares, distance_apart):

"""
:param my_turtle: instance of the turtle
:param side_length: initial length of the square e.g 200 before drawing the inner squares
:param no_of_squares: determines how many squares exist e.g 5 means the count of squares is 5
:param distance_apart: distance from once square to the next
:return:
"""

my_turtle.penup()
x, y = my_turtle.position()
my_turtle.goto(x - side_length/ 2, y - side_length / 2) # current x, y is positioned at the center
my_turtle.pendown()

my_turtle.setheading(-45) # square sits on corner instead of on side by default

for _ in range(no_of_squares):
radius = side_length * 2**0.5 / 2
my_turtle.circle(radius, steps=4) # determines the size of the shape 4 = square, 5=pentagon
side_length -= 50

my_turtle.penup()
x, y = my_turtle.position()
my_turtle.goto(x + distance_apart / 2, y + distance_apart / 2)
my_turtle.pendown()

if __name__=='__main__':
  window = turtle.Screen() # window and attributes setup
  window.bgcolor("blue")
  window.title("tuts@codeunderscored:~ Example 3: How to draw 4 Squares in Python")

  new_turtle = turtle.Turtle()
  new_turtle.penup()
  new_turtle.goto(10, 10)
  new_turtle.pendown()
  drawSquares(new_turtle, 200, 4, 50)
  turtle.done()
Example 3: How to draw 4 Squares in Python
Example 3: How to draw 4 Squares in Python

Example 4

"""
Example 4

"""
def drawSquares(my_turtle, side_length, no_of_squares, distance_apart):

"""
:param my_turtle: instance of the turtle
:param side_length: initial length of the square e.g 200 before drawing the inner squares
:param no_of_squares: determines how many squares exist e.g 5 means the count of squares is 5
:param distance_apart: distance from once square to the next
:return:
"""
if no_of_squares < 1:
return
for _ in range(4):
my_turtle.forward(side_length)
my_turtle.left(90)

my_turtle.penup()
x, y = my_turtle.position()
my_turtle.goto(x + distance_apart / 2, y + distance_apart / 2)
my_turtle.pendown()

drawSquares(my_turtle, side_length - distance_apart, no_of_squares - 1, distance_apart)

if __name__=='__main__':
  window = turtle.Screen() # window and attributes setup
  window.bgcolor("yellow")
  window.title("tuts@codeunderscored:~ Example 4: How to draw 4 Squares in Python")

  new_turtle = turtle.Turtle()
  new_turtle.penup()
  new_turtle.goto(10, 10)
  new_turtle.pendown()
  drawSquares(new_turtle, 200, 5, 40)
  turtle.done()


Example 4: How to draw 4 Squares in Python
Example 4: How to draw 4 Squares in Python

You may also like

Leave a Comment

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More