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! 💪
💬 Comments (0)
No comments yet
Be the first to share your opinion about this article!