📝 Game Development

10 Ideas for Your First Python Projects 💡

0
Author
04e5cc8b-58ac-4bdc-bdee-661bbb
📅
Published
03.04.2026
⏱️
Reading time
4 min
👁️
Views
88
🌱
Level
Beginner

Already know the Python basics? Time to put them into practice! Here are 10 projects, from simple to more challenging.

1. 🎲 Random Number Generator

What you need to know: print(), input(), random

import random

print('🎲 Random Number Generator\n')

min_num = int(input('Minimum: '))
max_num = int(input('Maximum: '))

result = random.randint(min_num, max_num)
print(f'\nRandom number: {result}')

Ideas to extend it:
- Generate multiple numbers at once
- Generate numbers without repetition
- Make a lottery ticket (6 numbers)

2. 💱 Currency Converter

What you need to know: print(), input(), float, arithmetic

print('💱 Currency Converter\n')

# Exchange rates
USD_TO_RUB = 75
EUR_TO_RUB = 85

currency = input('Currency (USD/EUR): ').upper()
amount = float(input('Amount: '))

if currency == 'USD':
    result = amount * USD_TO_RUB
    print(f'${amount} = {result} ₽')
elif currency == 'EUR':
    result = amount * EUR_TO_RUB
    print(f'€{amount} = {result} ₽')
else:
    print('Unknown currency')

Ideas to extend it:
- Add more currencies
- Convert in both directions
- Fetch live exchange rates from the web

3. 🌡️ Temperature Converter

What you need to know: if/elif, formulas, round()

print('🌡️ Temperature Converter\n')

temp = float(input('Temperature: '))
unit = input('Convert from (C/F): ').upper()

if unit == 'C':
    fahrenheit = temp * 9/5 + 32
    print(f'{temp}°C = {fahrenheit:.1f}°F')
elif unit == 'F':
    celsius = (temp - 32) * 5/9
    print(f'{temp}°F = {celsius:.1f}°C')

Ideas to extend it:
- Add Kelvin
- Display all three scales at once
- Add a description (freezing / cool / warm / hot)

4. 🧮 BMI Calculator

What you need to know: input(), float, if/elif, arithmetic

print('🧮 BMI Calculator\n')

weight = float(input('Weight (kg): '))
height = float(input('Height (m): '))

bmi = weight / (height ** 2)

print(f'\nYour BMI: {bmi:.1f}')

if bmi < 18.5:
    print('Underweight')
elif bmi < 25:
    print('Normal weight')
elif bmi < 30:
    print('Overweight')
else:
    print('Obese')

Ideas to extend it:
- Add ideal weight calculation
- Nutrition tips
- Weight-change chart

5. 🔐 Password Generator

What you need to know: random, string, loops

import random
import string

print('🔐 Password Generator\n')

length = int(input('Password length: '))

# Character set
chars = string.ascii_letters + string.digits + '!@#$%^&*'

# Generate
password = ''
for i in range(length):
    password += random.choice(chars)

print(f'\nYour password: {password}')

Ideas to extend it:
- Options: letters only / with digits / with special characters
- Password strength checker
- Generate multiple options

6. 📝 TODO List

What you need to know: lists, loops, functions

tasks = []

while True:
    print('\n=== TODO ===')
    print('1. Show tasks')
    print('2. Add task')
    print('3. Remove task')
    print('4. Quit')

    choice = input('\nChoose an action: ')

    if choice == '1':
        if tasks:
            for i, task in enumerate(tasks, 1):
                print(f'{i}. {task}')
        else:
            print('No tasks')

    elif choice == '2':
        task = input('New task: ')
        tasks.append(task)
        print('✅ Added!')

    elif choice == '3':
        num = int(input('Task number: ')) - 1
        if 0 <= num < len(tasks):
            removed = tasks.pop(num)
            print(f'❌ Removed: {removed}')

    elif choice == '4':
        break

Ideas to extend it:
- Mark tasks as done
- Priorities (high / normal)
- Save to a file

7. 🎯 Number Guessing Game

What you need to know: random, loops, counters

import random

print('🎯 Guess a number between 1 and 100\n')

secret = random.randint(1, 100)
attempts = 0

while True:
    guess = int(input('Your guess: '))
    attempts += 1

    if guess < secret:
        print('↗️ Higher!')
    elif guess > secret:
        print('↘️ Lower!')
    else:
        print(f'🎉 Correct! Got it in {attempts} attempts!')
        break

Ideas to extend it:
- Difficulty levels (different ranges)
- Limit the number of attempts
- High score table

8. 📊 Text Analyzer

What you need to know: strings, string methods, loops

print('📊 Text Analyzer\n')

text = input('Enter text: ')

# Stats
words = text.split()
letters = [c for c in text if c.isalpha()]

print(f'\nCharacters: {len(text)}')
print(f'Letters: {len(letters)}')
print(f'Words: {len(words)}')
print(f'Sentences: {text.count(".") + text.count("!") + text.count("?")}')

# Longest word
if words:
    longest = max(words, key=len)
    print(f'Longest word: {longest} ({len(longest)} letters)')

Ideas to extend it:
- Letter frequency analysis
- Palindrome finder
- Spell checker

9. 🎲 Rock-Paper-Scissors

What you need to know: random, if/elif, loops

import random

choices = ['rock', 'scissors', 'paper']
score = {'player': 0, 'computer': 0}

while True:
    print(f'\n🎲 Score {score["player"]}:{score["computer"]}')

    player = input('Your choice (r/s/p) or q to quit: ').lower()

    if player == 'q':
        break

    if player not in ['r', 's', 'p']:
        continue

    computer = random.choice(['r', 's', 'p'])

    print(f'Computer: {computer}')

    # Determine winner
    if player == computer:
        print('Draw!')
    elif (player == 'r' and computer == 's') or \
         (player == 's' and computer == 'p') or \
         (player == 'p' and computer == 'r'):
        print('You win!')
        score['player'] += 1
    else:
        print('Computer wins!')
        score['computer'] += 1

Ideas to extend it:
- Add “lizard” and “Spock”
- Timed mode
- Save statistics

10. 💰 Personal Budget Tracker

What you need to know: lists, dicts, functions

expenses = []
income = []

while True:
    print('\n💰 Personal Budget')
    print('1. Add income')
    print('2. Add expense')
    print('3. Show balance')
    print('4. Quit')

    choice = input('\nChoose: ')

    if choice == '1':
        amount = float(input('Amount: '))
        note = input('Source: ')
        income.append({'amount': amount, 'note': note})
        print('✅ Added!')

    elif choice == '2':
        amount = float(input('Amount: '))
        note = input('What for: ')
        expenses.append({'amount': amount, 'note': note})
        print('✅ Added!')

    elif choice == '3':
        total_income = sum(x['amount'] for x in income)
        total_expenses = sum(x['amount'] for x in expenses)
        balance = total_income - total_expenses

        print(f'\nIncome: {total_income}')
        print(f'Expenses: {total_expenses}')
        print(f'Balance: {balance}')

    elif choice == '4':
        break

Ideas to extend it:
- Expense categories
- Spending chart
- Savings goals

🎓 Tips

Start simple

Don’t try to build everything at once! Get a basic version working first, then add features.

Use comments

# This helps you understand the code later
score = 0  # Player score

Test constantly

Don’t write all your code before testing. Add a feature → test it → add the next one.

Don’t fear errors

Every error teaches you something new! Read error messages carefully.

📚 What’s next?

After these projects, try:
- Telegram bots (python-telegram-bot library)
- Web apps (Flask)
- Games with graphics (Pygame)
- Data analysis (Pandas)

The main thing — code every day, even if just for 15 minutes! 💪

Your reaction to the article

💬 Comments (0)

🔐 Sign in to leave a comment
🚪 Login
💭

No comments yet

Be the first to share your opinion about this article!

🔗 Similar

Similar articles

Continue learning with these materials

📝

Building a Game in Python: A Step-by-Step Guide 🎮

Games are the best way to learn programming! Let's walk through how to build your...

📅 03.04.2026 👁️ 104
📝

Python Achievements System — Gamification! 🏆

Achievements — rewards for completing tasks.

📅 03.04.2026 👁️ 89
📝

10 Game Ideas in Python 🎮

Want to build your own game? Here are 10 ideas from simple to complex, complete...

📅 03.04.2026 👁️ 91

Did you like the article?

Subscribe to our updates and receive new articles first. Grow with PyLand!