Best 9 Fun Python Projects For Complete Beginners | DataTrained

Python Projects For Complete Beginners
Muskan Gupta Avatar

Introduction

Python is a flexible and potent programming language that has become extremely popular with both novice and seasoned programmers. Python makes a wide range of opportunities for enjoyable and interesting projects possible because of its clarity and simplicity.

This post will explore several fascinating Python projects that will delight you while also advancing your coding abilities. You may begin your coding experience more easily because each project includes source code. So let’s start this voyage and use Python to explore our imagination!

To-Do List

To-Do List

A simple To-do list for organizing your tasks with the help of Python language can be a very fun project and even simple enough for beginners who are just beginning to learn advanced Python and want to try making some small projects to test their programming skills.

tasks = []

def add_task(task):

tasks.append(task)

print(“Task added.”)

def view_tasks():

if len(tasks) == 0:

print(“No tasks found.”)

else:

print(“Tasks:”)

for index, task in enumerate(tasks, start=1):

print(f”{index}. {task}”)

def remove_task(task):

if task in tasks:

tasks.remove(task)

print(“Task removed.”)

else:

print(“Task not found.”)

while True:

print(“nSelect operation:”)

print(“1. Add task”)

print(“2. View tasks”)

print(“3. Remove task”)

print(“4. Quit”)

choice = input(“Enter choice (1-4): “)

if choice == ‘1’:

task = input(“Enter task: “)

add_task(task)

elif choice == ‘2’:

view_tasks()

elif choice == ‘3’:

task = input(“Enter task to remove: “)

remove_task(task)

elif choice == ‘4’:

print(“Thank you! Goodbye.”)

break

else:

print(“Invalid choice!”)

Hangman Game

Hangman Game

The Hangman Game is a classic word-guessing game that never fails to entertain. The objective is to guess a word by suggesting letters within a limited number of attempts. Let’s take a look at the source code for this Python project:

import random

def hangman():

word_list = [“python”, “programming”, “hangman”, “game”, “development”]

word = random.choice(word_list)

guessed_letters = []

tries = 6

while tries > 0:

guessed_word = “”

for letter in word:

if letter in guessed_letters:

guessed_word += letter

else:

guessed_word += “_”

print(guessed_word)

print(f”Tries left: {tries}”)

guess = input(“Guess a letter: “).lower()

if guess in guessed_letters:

print(“You already guessed that letter!”)

elif guess in word:

guessed_letters.append(guess)

if “_” not in guessed_word:

print(“Congratulations! You guessed the word!”)

break

else:

tries -= 1

print(“Wrong guess!”)

if tries == 0:

print(“Game over! You ran out of tries.”)

print(f”The word was: {word}”)

hangman()

This source code allows you to play the Hangman Game by running the hangman () function. It randomly selects a word from the word_list and prompts you to guess letters until you either guess the word or run out of tries.

Weather App

Python’s adaptability goes beyond video games. A fun approach to learning about APIs, data processing, and GUI programming is to build a weather app. You may retrieve current weather information depending on user inputs such as location or ZIP code by using weather APIs like OpenWeatherMap. A user-friendly weather application may be made by visualizing the data in a graphical user interface. You may learn how to acquire and show weather information by following the instructions in the source code in Python.

import requests

import json

def weather_app():

api_key = “YOUR_API_KEY”

city = input(“Enter city name: “)

base_url = f”http://api.openweathermap.org/data/2.5/weather?q={city}&appid={api_key}”

response = requests.get(base_url)

weather_data = json.loads(response.text)

if weather_data[“cod”] != “404”:

main_info = weather_data[“weather”][0][“main”]

description = weather_data[“weather”][0][“description”]

temperature = weather_data[“main”][“temp”]

humidity = weather_data[“main”][“humidity”]

wind_speed = weather_data[“wind”][“speed”]

print(f”Weather in {city}:”)

print(f”Main: {main_info}”)

print(f”Description: {description}”)

print(f”Temperature: {temperature}K”)

print(f”Humidity: {humidity}%”)

print(f”Wind Speed: {wind_speed} m/s”)

else:

print(“City not found!”)

weather_app()

In this code, you need to replace “YOUR_API_KEY” with your own API key from OpenWeatherMap. It prompts you to enter the city name and fetches the weather data using the API. The code then displays various details like weather conditions, temperature, humidity, and wind speed.

Enroll today in Data Science Course in Delhi

URL Shortener Using Python

URL shorteners have become immensely popular, especially with the rise of social media platforms. Let’s create our own URL shortener using Python and Flask. Here’s an example of the source code:

from flask import Flask, request, redirect

import string

import random

app = Flask(__name__)

short_to_long = {}

long_to_short = {}

def generate_short_url():

letters = string.ascii_letters + string.digits

while True:

short_url = ”.join(random.choice(letters) for _ in range(6))

if short_url not in short_to_long:

return short_url

@app.route(‘/’, methods=[‘POST’, ‘GET’])

def url_shortener():

if request.method == ‘POST’:

long_url = request.form.get(‘url’)

if long_url not in long_to_short:

short_url = generate_short_url()

short_to_long[short_url] = long_url

long_to_short[long_url] = short_url

else:

short_url = long_to_short[long_url]

return f”Short URL: {request.host_url}{short_url}”

return ”’

<form method=”post”>

<input type=”text” name=”url” placeholder=”Enter URL” required>

<input type=”submit” value=”Shorten”>

</form>

”’

@app.route(‘/<short_url>’)

def redirect_to_long_url(short_url):

if short_url in short_to_long:

return redirect(short_to_long[short_url])

else:

return “URL not found!”

if __name__ == ‘__main__’:

app.run()

This Python code sets up a Flask application that acts as a URL shortener. It generates a random 6-character short URL and maps it to the corresponding long URL. When a user enters a URL in the form, it returns the shortened URL, and when someone accesses the shortened URL, it redirects them to the original long URL.

Check out The Best Data Science Course 

Tic-Tac-Toe Game

Tic-Tac-Toe Game

Tic-Tac-Toe is a popular game played on a grid of 3×3 squares. Players take turns marking X or O in empty squares, and the objective is to get three of their marks in a row, column, or diagonal. Here’s an example of the source code in Python:

def print_board(board):

for row in board:

print(“|”.join(row))

print(“-” * 5)

def check_winner(board):

for i in range(3):

if board[i][0] == board[i][1] == board[i][2] != ” “:

return board[i][0]

if board[0][i] == board[1][i] == board[2][i] != ” “:

return board[0][i]

if board[0][0] == board[1][1] == board[2][2] != ” “:

return board[0][0]

if board[0][2] == board[1][1] == board[2][0] != ” “:

return board[0][2]

return None

def play_tic_tac_toe():

board = [[” “, ” “, ” “], [” “, ” “, ” “], [” “, ” “, ” “]]

current_player = “X”

winner = None

while not winner:

print_board(board)

row = int(input(“Enter the row (0-2): “))

col = int(input(“Enter the column (0-2): “))

if board[row][col] == ” “:

board[row][col] = current_player

if current_player == “X”:

current_player = “O”

else:

current_player = “X”

else:

print(“That spot is already taken!”)

winner = check_winner(board)

print_board(board)

print(f”Player {winner} wins!”)

play_tic_tac_toe()

This code allows two players to take turns entering their moves until there is a winner or a tie.

Blackjack

Blackjack is a card game where the player’s goal is to get a hand total as close to 21 as possible without exceeding it. The player competes against the dealer. Here’s an example of the Python source code:

import random

def deal_card():

cards = [11, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10, 10]

return random.choice(cards)

def calculate_score(cards):

if sum(cards) == 21 and len(cards) == 2:

return 0

if 11 in cards and sum(cards) > 21:

cards.remove(11)

cards.append(1)

return sum(cards)

def compare(user_score, computer_score):

if user_score == computer_score:

return “Draw!”

elif computer_score == 0:

return “You lose, opponent has a Blackjack!”

elif user_score == 0:

return “You win with a Blackjack!”

elif user_score > 21:

return “You went over. You lose!”

elif computer_score > 21:

return “Opponent went over. You win!”

elif user_score > computer_score:

return “You win!”

else:

return “You lose!”

def play_blackjack():

user_cards = []

computer_cards = []

game_over = False

for _ in range(2):

user_cards.append(deal_card())

computer_cards.append(deal_card())

while not game_over:

user_score = calculate_score(user_cards)

computer_score = calculate_score(computer_cards)

print(f”Your cards: {user_cards}, current score: {user_score}”)

print(f”Computer’s first card: {computer_cards[0]}”)

if user_score == 0 or computer_score == 0 or user_score > 21:

game_over = True

else:

should_continue = input(“Type ‘y’ to get another card, or ‘n’ to pass: “)

if should_continue == ‘y’:

user_cards.append(deal_card())

else:

game_over = True

while computer_score != 0 and computer_score < 17:

computer_cards.append(deal_card())

computer_score = calculate_score(computer_cards)

print(f”Your final hand: {user_cards}, final score: {user_score}”)

print(f”Computer’s final hand: {computer_cards}, final score: {computer_score}”)

print(compare(user_score, computer_score))

play_blackjack()

Web Scraper

Python project program that extracts data from websites using libraries like BeautifulSoup or Scrapy to scrape information like news articles, product details, or social media data.

import requests

from bs4 import BeautifulSoup

# URL of the website to scrape

url = ‘https://example.com’

# Send a GET request to the URL

response = requests.get(url)

# Parse the HTML content using BeautifulSoup

soup = BeautifulSoup(response.content, ‘html.parser’)

# Find and extract specific elements from the HTML

# For example, let’s extract all the links on the page

links = soup.find_all(‘a’)

# Print the extracted links

for link in links:

print(link.get(‘href’))

Movie Recommendation System

Movie Recommendation System

Building a Movie Recommendation System using python can be a very fun projects techniques like collaborative filtering or content-based filtering to suggest movies to users based on their preferences.

Also Check out our Data Science Course in India

import pandas as pd

from sklearn.metrics.pairwise import cosine_similarity

# Load the MovieLens dataset (movies and ratings)

movies = pd.read_csv(‘movies.csv’)

ratings = pd.read_csv(‘ratings.csv’)

# Merge movies and ratings based on movieId

movie_ratings = pd.merge(movies, ratings, on=’movieId’)

# Create a pivot table with movie ratings

pivot_table = movie_ratings.pivot_table(index=’userId’, columns=’title’, values=’rating’)

# Calculate cosine similarity between movies

cosine_sim = cosine_similarity(pivot_table.fillna(0))

# Function to recommend movies based on user input

def recommend_movies(movie_title, n=5):

movie_idx = pivot_table.columns.get_loc(movie_title)

similar_movies = list(enumerate(cosine_sim[movie_idx]))

sorted_movies = sorted(similar_movies, key=lambda x: x[1], reverse=True)

top_movies = sorted_movies[1:n+1]

recommended_movies = [movies[‘title’][i[0]] for i in top_movies]

return recommended_movies

# Example usage

input_movie = ‘Toy Story (1995)’

recommendations = recommend_movies(input_movie)

print(f”Recommended movies similar to ‘{input_movie}’:”)

for movie in recommendations:

print(movie)

Dice Rolling Simulator

Dice Rolling Simulator

The Dice Rolling Simulator is a simple Python program that simulates the roll of a dice. It allows users to experience the randomness and excitement of rolling a physical dice in a digital environment.

import random

def roll_dice():

while True:

input(“Press Enter to roll the dice…”)

dice_value = random.randint(1, 6)

print(f”The dice rolled and landed on: {dice_value}”)

play_again = input(“Roll again? (y/n): “)

if play_again.lower() != “y”:

break

roll_dice()

Conclusion

Python projects not only offer entertainment but also provide valuable learning experiences. By exploring these fun and engaging projects with their accompanying source code, you can enhance your programming skills, unleash your creativity, and discover the vast possibilities that Python has to offer.

Whether you choose to develop a game, build a utility tool, or explore data analysis, Python’s versatility, and simplicity make it an ideal language to bring your ideas to life. So, dive into these projects, experiment, and let your imagination run wild as you embark on an exciting coding journey with Python.

Frequently Asked Questions (FAQs)

Do I need prior programming experience to work on these Python projects?

While prior programming experience can be helpful, many of these projects are designed to be beginner-friendly. The source code provided with each project serves as a guide and starting point, allowing you to learn and build upon it.

Absolutely! In fact, modifying and adding your own features to the projects is highly encouraged. The source code is meant to provide a foundation for you to explore and customize.


The specific libraries and frameworks required may vary depending on the project. However, the article mentions some popular libraries like OpenCV, Pillow, pygame, pyglet, NLTK, spaCy, and Tweepy.


Yes, definitely! You are encouraged to share and publish the projects you create. Whether you want to showcase your coding skills to potential employers or share your creations with the Python community, sharing your projects can be a great way to gain feedback, collaborate with others, and inspire fellow developers.

While the projects mentioned in the article serve as great starting points, it’s always exciting to come up with your own project ideas. To generate project ideas, think about your interests, hobbies, or areas you want to explore further.

Tagged in :

More Articles & Posts

UNLOCK THE PATH TO SUCCESS

We will help you achieve your goal. Just fill in your details, and we'll reach out to provide guidance and support.