When starting to learn a new programming language, the best way you can practice it, and get better at coding is through projects. One of the main goals of the projects is to put your knowledge into practice and show yourself that you can make something fun and useful with your new skills.
Coding projects will make you understand the structure of the programming language better, the interconnection between all the different concepts, and make it fun to practice. Not to mention, coding projects can make their way into your portfolio, so you can show off your skills to your employers, recruiters, or your professors.
If Python is your language of choice, you are in luck, since it is one of the most versatile languages, and you can make basically any type of project with it, including:
- web apps
- machine learning
- artificial intelligence, and more
Proficiency in one or more coding languages has become desirable, as programming knowledge can lead to rewarding careers. Demand for Python developers has been growing steadily, especially as Python is the third most popular programming language in the world.
When choosing a project to work on, do not start with any project. Do a little research and find a topic that sounds interesting to you, since you will enjoy it more, and it will keep you motivated to see the project through. Often the choice of projects is based on solving some everyday problem, or one that the developer finds useful.
We compiled a list of a few interesting ideas for projects you can make with Python, and put your knowledge to the test.

1. Currency or unit converter
If you are inclined towards computational programming, a kind of converter might be a fun project for you. Basically, this kind of app consists of objects featuring functions loaded with different kinds of conversion algorithms (unit, currency, or similar).
On the following link, you can see an example of a currency converter coded in Python and get an idea of how your app should be created.

You will need to know the mathematical equation or rule for converting the desired value, and if you want it to work for many units/currencies, you will need to handle each conversion with separate functions. You can then call each function based on the users' choice from a parent function.
An example would be the following code:
xxxxxxxxxx
masterFunc(5, "C to F")
def celciusToFar(option=None):
if type(option) == int or float:
option = (option * 9 / 5) + 32
print(option, "F")
else:
return "Conversion error"
def farToCelcius(option=None):
if type(option) == int or float:
option = (option - 32) * 5 / 9
print(option, "C")
else:
return "Conversion error"
def masterFunc(
number=None, options=None
): # Create a master function to validate users' choice with conditions
if options == "C to F":
if type(number) == int or float:
return celciusToFar(number)
else:
return "Invalid operation"
elif options == "F to C":
return farToCelcius(number)
else:
return "Conversion fails"
2. Web scraper (crawler)
A web scraper or a crawler is an automated script designed to surf the internet and store the content of certain web pages. A web crawler is especially useful to find up-to-date information using multi-thread concepts in its program. You can easily build a crawler bot using Python’s request module or Scrapy, Python’s open-source web crawling framework explicitly designed for web scraping and extracting data by using APIs. You can write scripts for gathering specific information and then store it in a CSV or an Excel file.
Building a web scraper with Python offers you the opportunity to learn how web crawlers work in real-life applications and make an app or script that will get you some data you might actually need!
On this link, you can find an example of a web crawler in Python, and get an idea about this kind of application.

3. Rock, paper, scissors game
Games are fun to code in Python. Since it is the number one language for developing AI and ML apps, you can try yourself with any kind of game: chess, tic-tac-toe, snake, and so on.
We chose Rock, paper, and scissors as an example. This mini-game has four functions that this program requires so let us have an overview of each:
- a random function: to generate rock, paper, or scissors
- valid function: to check the validity of the move
- result function: to declare the winner of the round
- scorekeeper: to keep track of the score
The game asks the user to make the first move before it makes a move itself. Once the move is validated, the input is evaluated, and then a winner is decided by the result function and the score of the round is updated by the scorekeeper function.
1import random
2
3user_action = input("Enter a choice (rock, paper, scissors): ")
4possible_actions = ["rock", "paper", "scissors"]
5computer_action = random.choice(possible_actions)
6print(f"\nYou chose {user_action}, computer chose {computer_action}.\n")
7
8if user_action == computer_action:
9 print(f"Both players selected {user_action}. It's a tie!")
10elif user_action == "rock":
11 if computer_action == "scissors":
12 print("Rock smashes scissors! You win!")
13 else:
14 print("Paper covers rock! You lose.")
15elif user_action == "paper":
16 if computer_action == "rock":
17 print("Paper covers rock! You win!")
18 else:
19 print("Scissors cuts paper! You lose.")
20elif user_action == "scissors":
21 if computer_action == "paper":
22 print("Scissors cuts paper! You win!")
23 else:
24 print("Rock smashes scissors! You lose.")
4. Quiz application
Coding and running a multiple-choice app via your command line shows that you can use what you have learned to build something pretty basic and usable.
Coding a multiple-choice quiz with Python not only exposes you to how a typical quiz app works, but you will also get used to some of the core concepts of Python programming.
The knowledge you will need for this simple app is an understanding of Python loops, functions, conditions, object-oriented programming, and how arrays work in Python.
To simplify the development cycle, however, some questions should come to your mind:
- How will you display your questions?
- How can users input their answers?
- How do you intend to specify the correct options while inputting questions?
- How about adding up scores for every correct answer?
On this link you can find an example of a quiz app made in Python and get a general idea of how your app should be made.

5. Calculator
Building a calculator is one of the most obvious choices for any beginner, no matter the programming language you are learning. Building this project you would learn to design a graphical UI with Python and make you familiar with a library like Tkinter, PyQT, Pyforms, and Kivy among others. This library enables you to create buttons to perform different operations and display results on the screen.
You can use separate functions to handle the calculations, and then code the user interface using any GUI module. The Tkinter library, however, is more beginner-friendly.
A simple approach is to define functions for each operation (add, subtract, multiply, divide), which will accept two numbers as parameters. The operations will be performed on those numbers and the result will be returned. Based on the user's input, the decision for the operation function can be made using if/else statements.
1def add(x, y):
2 return x + y
3
4
5def subtract(x, y):
6 return x - y
7
8
9def multiply(x, y):
10 return x * y
11
12
13def divide(x, y):
14 return x / y
15
16
17print("Select operation.")
18print("1.Add")
19print("2.Subtract")
20print("3.Multiply")
21print("4.Divide")
22
23while True:
24 choice = input("Enter choice(1/2/3/4): ")
25 if choice in ("1", "2", "3", "4"):
26 num1 = float(input("Enter first number: "))
27 num2 = float(input("Enter second number: "))
28
29 if choice == "1":
30 print(num1, "+", num2, "=", add(num1, num2))
31 elif choice == "2":
32 print(num1, "-", num2, "=", subtract(num1, num2))
33 elif choice == "3":
34 print(num1, "*", num2, "=", multiply(num1, num2))
35 elif choice == "4":
36 print(num1, "/", num2, "=", divide(num1, num2))
37 next_calculation = input("Let's do next calculation? (yes/no): ")
38 if next_calculation == "no":
39 break
40 else:
41 print("Invalid Input")
One Pager Cheat Sheet
- With Python becoming the third most popular programming language in the world, it is a great choice to practice coding skills by making interesting
projects
that can be added to your portfolio, solve an everyday problem, or something you find useful in order to help you become a desirable candidate for careers in software engineering. Creating a currency or unit converter with computational programming could be a fun project, as it involves implementing functions with different types of conversion algorithms and calling them from a parent function.
A web scraper, also known as a crawler, is an automated script used to surf the internet and store the content of certain web pages, often using Python's request module, Scrapy, or an example of a web crawler in Python such as pyspider.
- This code implements a Rock, paper, scissors game, utilizing functions for generating and validating moves, declaring a winner, and keeping track of the score.
- Writing a basic multiple-choice quiz application in Python requires understanding of
loops
,functions
,conditions
,object-oriented programming
and arrays to add scores for correct answers. - You can use Tkinter to create a graphical user interface and define separate functions for performing each operation (add, subtract, multiply, divide), with
if/else
statements to decide which calculation to do.