Skip to Content
Get my Updated Resume

19 mins read


Top 10 Python Projects for beginners

In this article, I'll tell you about the top 10 python projects to build as a python developer.


Python is one of the most popular programming languages according to StackOverflow Survey and also Google Trends, and If you're a Python Developer it'll be best to get some of the best python real-time projects on your resume as a Beginner to get your dream job.

In this article, we'll tell you about the Top 10 Python Projects to develop as a Beginner and add it to your resume.

Start with the Basics

To Develop a good Project you must have at least a basic knowledge of Python, we recommend you get started with Codedamn's Python Course, this course will get you all the knowledge about Python as a Beginner.

What these Projects will make you learn??

As a Python beginner, you'll be having a lot of knowledge about loops, functions, conditional statements, etc. But when and where to use those, that is the real deal, these projects will teach you a lot about it.

Python Project Ideas: Beginner Level

1. Number Guessing Game

Starting with One of the most basic Project Ideas. It's kind of like a mini-game developed with python to be played in Command Prompt or Shell.

Develop a Program where a user is asked the range from which a random number is to be chosen and then give the user a hint for that particular Number and let the user guess the number.

Things to Learn from this Project

  • Maintaining Multiple Data without creating abundant variables
  • Generating Random numbers, managing and working on it
  • Obtaining Input from the User and storing his/her data.

Number Guessing Game

import random
import math
 
lower = int(input("Enter the Lower Limit:- "))
 
upper = int(input("Enter the Upper Limit:- "))
 
x = random.randint(lower, upper)
print("\n\tYou now only have ",
      round(math.log(upper - lower + 1, 2)),
      " chances to guess the correct number!\n")
 
count = 0
 
while count < math.log(upper - lower + 1, 2):
    count += 1
 
    guess = int(input("Try Guessing a Number:- "))
 
    if x == guess:
        print(f"Congratulations you took {count} number of tries")
    elif x > guess:
        print("That's way too less!")
    elif x < guess:
        print("That's way too high!")
 
if count >= math.log(upper - lower + 1, 2):
	print("\nThe number is %d" % x)
	print("\tLearn from the last one\nAnd try next time!")

2. Tic Tac Toe ( Using Matrix )

Everybody must have played Tic Tac Toe while we were in school. The next Project is based on that only, This Project will be played against Computer using Random Numbers to provide input to the game and we'll provide input using matrix locations e.g. [2,5].

Develop a Program in which the user is shown a blank sheet of Playable Area where we're asked to input location in [x, y] format then based on input the location will be filled and after every input from either side, there should be a check of who won the game ( if anyone ).

Things to Learn from this project

  • Operating with Lists or List of Lists
  • if-else condition
  • nested loops and iterations

Tic Tac Toe using Matrix

import os
 
def printBoard(gameValues):
    print(f" {gameValues[0]} | {gameValues[1]} | {gameValues[2]} ")
    print(f"---|---|---")
    print(f" {gameValues[3]} | {gameValues[4]} | {gameValues[5]} ")
    print(f"---|---|---")
    print(f" {gameValues[6]} | {gameValues[7]} | {gameValues[8]} ")
 
def checkWin(gameValues):
    wins = [[0, 1, 2], [3, 4, 5], [6, 7, 8], [0, 3, 6], [1, 4, 7], [2, 5, 8], [0, 4, 8], [2, 4, 6]]
 
    for win in wins:
        if(gameValues[win[0]] == gameValues[win[1]] == gameValues[win[2]] == 'X'):
            printBoard(gameValues)
            print("X Won the match")
            return 1
 
        if(gameValues[win[0]] == gameValues[win[1]] == gameValues[win[2]] == 'O'):
            printBoard(gameValues)
            print("O Won the match")
            return 0
 
        if all(isinstance(item, str) for item in gameValues):
            printBoard(gameValues)
            return -2
    return -1
 
if __name__ == '__main__':
    gameValues=[0, 1, 2, 3, 4, 5, 6, 7, 8]
    chance = 1
 
    while(True):
        try:
            if chance == 1:
                printBoard(gameValues)
                print("\nX's Chance")
                value = int(input("\nEnter the Value: "))
                if gameValues[value]!= 'O':
                    gameValues[value] = 'X'
                else:
                    os.system('CLS')
                    print("\nLocation already filled")
                    continue
                os.system('CLS')
 
            if chance == 0:
                printBoard(gameValues)
                print("\nZ's Chance")
                value = int(input("\nEnter the Value: "))
                if gameValues[value]!= 'X':
                    gameValues[value] = 'O'
                else:
                    os.system('CLS')
                    print("\nLocation already filled")
                    continue
                os.system('CLS')
 
        except IndexError:
            os.system('CLS')
            print("\nEnter value from 0 - 8\n")
            continue
 
        chance = 1 - chance
        cwin = checkWin(gameValues)
        if(cwin == -2):
            print("Game Draw")
            break
        if(cwin != -1):
            print("Match over")
            break

3. Array/List Sorting Program

Till now we've been introduced to various things like if-else, for loop, random module, formatting input and output. It's time to level up, there are numerous amount of sorting algorithms already implemented by python under the name of .sort().

Develop a Program in which a user is asked to provide jumbled input of Data and sort the List using various sorting algorithms, then display the user output.

Things to Learn from this Project

  • Sorting Algorithms and Implementations

Python Project Ideas: Intermediate

4. String Encoder-Decoder App

These days when people are more considered about privacy and security, there's no much better time than now to develop a Message Encoding app with Python which will use certain algorithms to encrypt users' messages.

Develop a Program in which a user is asked to provide a string as input and then the program should encrypt the message using different types of encryption algorithms, with a randomly generated key.

Things to learn from this project

  • Encryption Techniques
  • Operations on Strings
  • Working with Binary Outputs

String Encoder Decoder App

from tkinter import *
import base64
from tkinter import messagebox
 
root = Tk()
 
root.geometry("500x500")
 
message = StringVar()
keyToUse = StringVar()
modeOfOperation = StringVar()
result = StringVar()
 
root.title("Codedamn Message Encryption and Decryption")
 
label = Label(root, text='Enter the Message to Encrypt')
label.place(x=10,y=0)
 
mes = Entry(root, textvariable=message)
mes.place(x=200,y=0)
 
label1 = Label(root, text='e for encrypt and d for decrypt')
label1.place(x=10,y=50)
 
l_mode = Entry(root, textvariable=modeOfOperation)
l_mode.place(x=200,y=50)
 
label2 = Label(root, text='Enter the Keyphrase')
label2.place(x=10,y=100)
 
l_key = Entry(root, textvariable=keyToUse)
l_key.place(x=200,y=100)
 
label3 = Label(root, text='Result')
label3.place(x=10,y=150)
 
res = Entry(root,textvariable=result)
res.place(x=200,y=150)
 
 
def encodetheMessage(key, msg):
    encodedMessage = []
    for i in range(len(msg)):
        key_coded = key[i % len(key)]
        enc_coded = chr((ord(msg[i]) + ord(key_coded)) % 256)
        encodedMessage.append(enc_coded)
    return base64.urlsafe_b64encode("".join(encodedMessage).encode()).decode()
 
 
def decodetheMessage(key, encode):
    decodedMessage = []
    encode = base64.urlsafe_b64decode(encode).decode()
    for i in range(len(encode)):
        key_coded = key[i % len(key)]
        dec_coded = chr((256 + ord(encode[i]) - ord(key_coded)) % 256)
        decodedMessage.append(dec_coded)
    return "".join(decodedMessage)
 
 
def Results():
    message = mes.get()
    keyToUse = l_key.get()
    modeOfOperation = l_mode.get()
    modeOfOperation.lower()
    if (modeOfOperation == 'e'):
        result.set(encodetheMessage(keyToUse, message))
    elif(modeOfOperation == 'd'):
        result.set(decodetheMessage(keyToUse, message))
    else:
        messagebox.showinfo('Codedamn.com', 'Enter the Correct Mode to perform the Operation')
 
 
def getOut():
    root.destroy()
 
 
def reset():
    message.set("")
    keyToUse.set("")
    modeOfOperation.set("")
    result.set("")
 
 
btn = Button(root, text='Perform Operation',
                 foreground='blue', command=Results)
btn.place(x=10, y=200)
 
btnreset = Button(root, text='Reset', command=reset)
btn.place(x=150, y=200)
 
btnexit = Button(root, text='Exit', command=getOut)
btn.place(x=300, y=200)
 
 
root.mainloop()

5. Contact Book

This is just an excellent project for beginners to work with DataBase and still perform many neat operations in Python. It can even be implemented in GUI format but the initial steps should be in Command Line Interface.

Develop a Program that gets input from the user and saves the details in a database while still giving access to the user to edit the details once it's been saved, and also be able to delete the contact if in case needed by the user.

Things to learn from this Project

  • To Integrate DataBase with Python Code
  • To work with DataBase using Python Code
  • Perform Create, Read, Update and Delete ( CRUD ) operations.

Contact Book in Python

names = []
numbers = []
num = 3
 
 
for i in range(num):
    print("To stop feeding the Contacts Enter Blank values by pressing Enter")
    name = input("Enter the Name: ")
    number = input("Enter his/her Number: ")
    names.append(name)
    numbers.append(number)
 
print("----------------------------------------\nName\t\t\tPhone Number\n")
 
for i in range(num):
    print("{}\t\t\t{}".format(names[i], numbers[i]))
 
search_term = input("\nEnter search term: ")
 
print("Search result:")
 
if search_term in names:
    index = names.index(search_term)
    phone_number = numbers[index]
    print("Name: {}, Phone Number: {}".format(search_term, phone_number))
 
else:
    print("Name Not Found")

Python Project Ideas: Advanced

So now if you've already worked with all of the projects mentioned above then you might still need some challenges as a beginner, below are the projects which are for beginners but still have a difficulty level of HARD.

6. Web Browser Automation

We all do some of the tasks regularly on our laptops/PCs like checking on notifications on GitHub or YouTube but still don't know a way to minimize that time, why don't automate it using Python?? Python can automate the steps you perform in the browser and keep you updated about the things which are happening.

Develop a Program that opens a browser and head over to a website and collect data from it or operate some tasks and then give the user info about the steps.

Things to learn from this project

  • Automation
  • Speed up your boring tasks
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
 
def login(browser):
    browser.get("https://www.instagram.com/?hl=en")
    time.sleep(5)
    username = browser.find_element_by_css_selector("[name='username']")
    password = browser.find_element_by_css_selector("[name='password']")
    login = browser.find_element_by_css_selector("button")
 
    #YOUR USERNAME GOES HERE
    username.send_keys("my_username")
    #YOUR Password GOES HERE
    password.send_keys("mypass291")
    login.click()
 
 
 
    time.sleep(5)
 
 
def Vist_Tag(browser, url):
    sleepy_time = 5
    browser.get(url)
    time.sleep(sleepy_time)
 
    pictures = browser.find_elements_by_css_selector("div[class='_9AhH0']")
 
    image_count = 0
 
    for picture in pictures:
        if image_count >= 3:
            break
 
        picture.click()
        time.sleep(sleepy_time)
 
        heart = browser.find_element_by_css_selector("[aria-label='Like']")
        heart.click()
 
        close = browser.find_element_by_css_selector("[aria-label='Close']")
        close.click()
 
        image_count += 1
        time.sleep(sleepy_time)
 
def main():
    browser = webdriver.Chrome()
    login(browser)
 
    tags = [
        "programming",
        "softwaredeveloper",
        "programminglife",
        "programmerslife",
        "programmerlife",
        "developerlife",
        "programmers",
    ]
 
    while True:
        for tag in tags:
            Vist_Tag(browser, f"https://www.instagram.com/explore/tags/{tag}")
        time.sleep(3600)
 
main()

7. YouTube Scrapper

How good will it be if you just sat to code and you wanna listen to Lofi beats or any other song but still don't wanna mess up the history of your Spotify?? A scraper will be good enough to play selected videos from youtube in your native video Player.

Develop a Program that asks input from the user to search from youtube and get the URL of the first video of the search results and play it in your Native Video Player.

Things to learn from this project

  • Regex
  • Scraping Websites without using a dedicated selenium Instance
def GetAndPlayVideo(query = ""):
    if query == "":
        print("To change the video number type something like below")
        print("{Your Query} number {any video number}")
        print("to play 1st video you don't have to do anything")
        searchQuery = input("Enter the Search Term on YouTube : ")
    else:
        searchQuery = query
    try:
        if searchQuery.split('number')[1]:
            numberOfVideo = int(searchQuery.split('+')[1]) -1
    except:
        numberOfVideo = 0
    if isVideo != True:
        term = searchQuery.replace(" ", "+")
    else:
        term = searchQuery.replace(" ", "+").join("+lyrics")
    uri = f'https://www.youtube.com/results?search_query={term}'
    html = urllib.request.urlopen(uri)
    video_ids = re.findall(r"watch\?v=(\S{11})", html.read().decode())
    return f'https://www.youtube.com/watch?v={video_ids[numberOfVideo]}'

8. Speech-to-Text converter and vice versa

How good it will be if you can just develop a program that can listen to you, and can write text over anything, this program has many uses let's say you wanna write a tweet over Twitter all you've to do now is just integrate this with a suitable Selenium Program.

Develop a Program that listens to users' voices and gets the message and stores it in a database or File.

Things to learn from this project

  • make use of hardware using Python
  • Voice recognition

9. Twitter/Reddit Bot

This is the best Idea to challenge your programming skills and make you no more a beginner in Python. Make use of the Wrapper classes available and encase your logic here.

Develop a Graphical User Interface Program in which a user is prompted to choose whether he wants to get the notifications or write something over Reddit or Twitter based on his selection perform the task without opening any browser instance, making use of the API.

Things to learn from this project

  • Interacting with API
  • Authorization
def UploadToTwitter(Post, Image):
    connection = sqlite3.connect('AutoPoster.db')
    cursor = connection.cursor()
    data = cursor.execute('select * from Twitter').fetchall()[0]
 
    auth = tweepy.OAuthHandler(
        data[0], data[1])
    auth.set_access_token(
        data[2], data[3])
 
    api = tweepy.API(auth)
    client = tweepy.Client(consumer_key=data[0], consumer_secret=data[1], access_token=data[2], access_token_secret=data[3], bearer_token=data[4])
    if Image != "" and len(Post) != 0:
        mediaID = api.media_upload(Image)
        client.create_tweet(text=Post, media_ids=[mediaID.media_id_string])
    elif len(Post) == 0 and Image != "":
        mediaID = api.media_upload(Image)
        client.create_tweet(media_ids=[mediaID.media_id_string])
    elif Image == "" and len(Post) != 0:
        client.create_tweet(text=Post)
 
    connection.close()

10. Discord Bot

Discord Bots are programs that continuously monitor a Discord Server to get commands as input and operate based on it. Discord bots are many useful to Influencers who want to interact with their followers.

Developed a Program that actively monitors a Discord Server in which it's added and operates based on input from the users.

Things to learn from this project

  • A Startup Idea
  • API Hosting Programs on the Web
  • Chat systems

Conclusion

Finally, now you know what some good and interesting projects you should add up to your resume if you're a complete beginner, Projects help us in increasing our knowledge by pushing our level hard.

It's always a good idea to develop projects of whatever you learn as that helps us to remember the concepts and develop strong skills in that and get a good command over that skill.