In this tutorial, we will learn how to Create Analog Clock in Python using Turtle module. Analog clocks are also called wall clock.
Before we start learning to Create Analog Clock in Python using Turtle, be sure that you know the Turtle module basics because we will use it everywhere in the code along with the Python language. If you don’t know how to draw something with Python’s turtle module or need some help, click here to get help anytime.
Now, we are ready to start with confidence, so let’s start.
First, we will import the required modules.
import turtle
import time
Then, we will set some parameters like creating a screen, setting the background color, setting up geometry, title, and tracer of our turtle window.
screen = turtle.Screen() screen.bgcolor("white") screen.setup(width=600, height=600) screen.title("Ghadi") screen.tracer(0)
Then, we will create/initalize the turtle module
kalam = turtle.Turtle()
We will then hide the turtle/pen
kalam.hideturtle()
Now, we will set the speed of the turtle using speed() function
kalam.speed(0)
We will also set the size of the pen/turtle using pensize() function
kalam.pensize(3)
Then we have created a function(ghadi_bana) which will be used to create/draw the clock, here we will see the code only, we will understand it using comments later.
def ghadi_bana(ghantaa, minutee, secondd, kalam): kalam.up() kalam.goto(0, 210) kalam.setheading(180) kalam.color("red") kalam.pendown() kalam.circle(210) kalam.up() kalam.goto(0, 0) kalam.setheading(90) for z in range(12): kalam.fd(190) kalam.pendown() kalam.fd(20) kalam.penup() kalam.goto(0, 0) kalam.rt(30) hands = [("black", 80, 12), ("black", 150, 60), ("black", 110, 60)] time_set = (ghantaa, minutee, secondd) for hand in hands: time_part = time_set[hands.index(hand)] angle = (time_part/hand[2])*360 kalam.penup() kalam.goto(0, 0) kalam.color(hand[0]) kalam.setheading(90) kalam.rt(angle) kalam.pendown() kalam.fd(hand[1])
Now, we will create a while loop which will handle the hands of our Analog Clock. We will be creating three hands as a wall clock have for hours, minutes, and seconds. Check the code below:
while True: ghantaa = int(time.strftime("%I")) minutee = int(time.strftime("%M")) secondd = int(time.strftime("%S")) ghadi_bana(ghantaa, minutee, secondd, kalam) screen.update() time.sleep(1) kalam.clear()
Now, let’s see the complete code, and we will use the comments to understand our “Create Analog Clock in Python using Turtle” project in more details.
Code To Create Analog Clock in Python using Turtle
import turtle import time screen = turtle.Screen() #turtle screen screen.bgcolor("white") #background of the screen screen.setup(width=600, height=600) #geometry of the GUI screen.title("Ghadi") #title of the GUI screen.tracer(0) #tracer for the GUI kalam = turtle.Turtle() #the turtle kalam.hideturtle() #make the turtle invisible kalam.speed(0) #setting the speed to 0 kalam.pensize(3) #setting the pensize to 3 def ghadi_bana(ghantaa, minutee, secondd, kalam): #function with 4 parameters kalam.up() #not ready to draw kalam.goto(0, 210) #positioning the turtle kalam.setheading(180) #setting the heading to 180 kalam.color("red") #setting the color of the pen to red kalam.pendown() #starting to draw kalam.circle(210) #a circle with the radius 210 kalam.up() #not ready to draw kalam.goto(0, 0) #positioning the turtle kalam.setheading(90) #same as seth(90) in newer version for z in range(12): #loop kalam.fd(190) #moving forward at 190 units kalam.pendown() #starting to draw kalam.fd(20) #forward at 20 kalam.penup() #not ready to draw kalam.goto(0, 0) #positioning the turtle kalam.rt(30) #right at an angle of 30 degrees hands = [("black", 80, 12), ("black", 150, 60), ("black", 110, 60)] #the color and the hands set time_set = (ghantaa, minutee, secondd) #setting the time for hand in hands: #loop time_part = time_set[hands.index(hand)] #time part in the hand index in hands of time_Set angle = (time_part/hand[2])*360 #setting the angle for the clock kalam.penup() #not ready to draw kalam.goto(0, 0) #positioning the turtle kalam.color(hand[0]) #setting the color of the hand kalam.setheading(90) #same as seth(90) kalam.rt(angle) #right at an angle of "right" kalam.pendown() #ready to draw kalam.fd(hand[1]) #forward at a unit of 1st index of the hand var while True: ghantaa = int(time.strftime("%I")) #setting the hour from the time module minutee = int(time.strftime("%M")) #setting the minute from the time module secondd = int(time.strftime("%S")) #setting the second as above ghadi_bana(ghantaa, minutee, secondd, kalam) #calling the ghanta_bana() function with the given parameters screen.update() #updating the scren time.sleep(1) #making the code sleep for a second with the time module kalam.clear() #clearing the pen
Output:
Thank you for reading till the end.
Keep Learning, Keep Coding
Also Read:
- Radha Krishna using Python Turtle
- Drawing letter A using Python Turtle
- Wishing Happy New Year 2023 in Python Turtle
- Snake and Ladder Game in Python
- Draw Goku in Python Turtle
- Draw Mickey Mouse in Python Turtle
- Happy Diwali in Python Turtle
- Draw Halloween in Python Turtle
- Write Happy Halloween in Python Turtle
- Draw Happy Diwali in Python Turtle
- Extract Audio from Video using Python
- Drawing Application in Python Tkinter
- Draw Flag of USA using Python Turtle
- Draw Iron Man Face with Python Turtle: Tony Stark Face
- Draw TikTok Logo with Python Turtle
- Draw Instagram Logo using Python Turtle
- I Love You Text in ASCII Art
- Python Turtle Shapes- Square, Rectangle, Circle
- Python Turtle Commands and All Methods
- Happy Birthday Python Program In Turtle