Make a Countdown and Pomodoro Timer in Python | Intermediate Python Tutorial
POSTED ON OCTOBER 30, 2020
Make a Countdown Timer in Python Code

## Project Introduction

In this tutorial, we’ll be creating a countdown timer that asks the user how much time (in seconds) they want to set the timer for — once time is up, print out “Blast Off!”.

We’ll also be creating an extension to this project where we’ll make a Pomodoro Timer with 25-minute and 5-minute intervals — the Pomodoro technique is a productivity method that is often used while studying or working. It uses a timer to break down work into intervals, traditionally 25 minutes in length, separated by short 5 minute breaks.

Watch the tutorial video to see how we code this game step-by-step, and continue reading this post for more details!

## Who is this project for?

This project info and learning outcomes summary will help you decide if this Python coding project is right for you.

This project falls under our Juni Python Level 2 coding class for kids. This beginner/intermediate Python tutorial is for students that want a Easy challenge project, about 10-15 lines of code for countdown timer, and 20-30 lines of code long for the pomodoro timer. You should review Python loops, strings, inputs, and conditionals beforehand to get the most out of this project.

Some other projects you can try first for more practice with beginner/intermediate Python are our how to make a calculator in Python and draw an animal face in Python tutorials.

For learning outcomes, you'll get a lot of practice with user input, while loops, modulo, Python time module, and floor div. This project is estimated to take you about 15-30 minutes, but you should move faster or slower at your own pace!

## Project Demo

Before getting started, see how our finished project works for reference. Watch the video, or click run to see the project yourself!

You can also view my project solution code if you get stuck.

### What to keep in mind before you start:

Remember that floor division in Python returns the quotient, but rounds down to the nearest integer. For example, 10 / 3 = 3.333, but 10 // 3 = 3.

The `%` symbol is called the modulo operator. It returns the remainder of dividing the left hand operand by right hand operand. For example, 10 % 3 = 1, because 3 goes into 10 three times, with a remainder of 1.

## Steps to Code the Project:

1. Set up the project and create a function that takes in an the number of seconds we want to count down for.
2. Use a while loop so that we keep counting down until t is 0.
3. Calculate the amount of time remaining and print out the timer.

### How do we do each of these steps?

Step 1: Set up the project and create a function that takes in an the number of seconds we want to count down for.

• Import the time module and ask the user for the number of seconds they want to set the timer for.

Step 2: Use a while loop so that we keep counting down until t is 0.

• Inside the loop, calculate the amount of time in minutes and seconds that the timer has left. (Hint: `//` and `%` may be helpful here. Remember that each minute has 60 seconds!)
• Once you calculate the number of minutes and seconds, format the time to be in minutes:seconds using `timer = '{:02d}:{:02d}'.format(mins, secs)`.

Step 3: Calculate the amount of time remaining and print out the timer.

• Next, print out the timer and make sure to overwrite the previous time as the amount of time remaining continuously updates. (Hint: Use `print(timer, end="\r")`), the `\r` will allow us to overwrite the previous line).
• Be sure to call `time.sleep(1)` to make sure our timer waits one second before decreasing as well as decrement it by 1 each time.
• Once the timer runs out, print `“Blast Off!”`

## Bonus: Make a Pomodoro Timer

Transform your countdown timer into a Pomodoro timer! It uses a timer to break down work into intervals, traditionally 25 minutes in length, separated by short 5 minute breaks.

Step 1. Set up the project and create a function.

• Import the time module and print out “`Pomodoro starts now!`” at the beginning outside of the function

Step 2. Use a loop to create the 25-minute work time intervals. Traditionally, the Pomodoro technique has four intervals of 25-minute work time followed by 5-minute break time. We can use a for loop to repeat the following code four times.

• Create a variable to keep track of the time remaining. Remember that each minute has 60 seconds, so our 25-minute work time should have 25*60 seconds at the start.
• Calculate the amount of time in minutes and seconds that the timer has left. (Hint: `//` and `%` may be helpful here.)
• Similar to the countdown timer from above, format the time to be in minutes:seconds using `timer = '{:02d}:{:02d}'.format(mins, secs)`
• Next, print out the timer and make sure to overwrite the previous time as the amount of time remaining continuously updates. (Hint: Use `print(timer, end="\r")`, the `\r` will allow us to overwrite the previous line) .
• After the 25-minute work time is up, print out “Break Time!”

Step 3. Create the 5-minute break time timer.

• Repeat Step 2 to program a 5-minute break time timer. Once the time is up, print out “`Work Time!`

## Great job! Check out more coding tutorials

Thanks for watching and hope you had fun making this project with me! Every week, we’ll be posting project tutorials like this one, for different coding languages and experience levels, as well as math tutorials.

Check out our step-by-step coding projects to find our other tutorials in Python and more coding languages!

## Need more help, or want to keep learning?

A Juni Instructor teaches basic Python to a young student.

Looking up your coding questions is one of the best ways to learn! Another great way to learn is from an experienced coder or instructor.

Juni Learning Coding Instructors like Eva work closely with students ages 8-18, and are specially trained to adapt to each child's unique learning style, pace, and interests.

Read more about our online coding classes for kids, or contact our Juni Advisors Team by calling (650) 263-4306 or emailing advisors@learnwithjuni.com to learn which course is best for your student’s coding journey.