البرمجة📅 2026-09-2414 دقائق قراءة
5 مشاريع Python للمبتدئين — ابنِ أول أعمالك

5 مشاريع Python للمبتدئين — ابنِ أول أعمالك

5 مشاريع Python عملية للمبتدئين مع الكود الكامل والشرح خطوة بخطوة — ابنِ معرض أعمالك الأول وابدأ رحلتك البرمجية

قرأت عن Python، تعلمت الأساسيات، وفهمت المفاهيم. لكن السؤال الحقيقي: هل تستطيع بناء شيء حقيقي؟

الطريقة الوحيدة لإتقان البرمجة هي البناء. في هذا المقال، سنبني 5 مشاريع عملية من الصفر — كل مشروع يعلمك مهارة جديدة، وكل مشروع يمكنك إضافته إلى معرض أعمالك.

بنهاية هذا المقال، سيكون لديك:

  • 5 مشاريع حقيقية في معرض أعمالك
  • فهم عملي لكل مفاهيم Python
  • ثقة لبناء مشاريع أكبر
  • أساس لمشاريع احترافية

لماذا المشاريع أفضل من القراءة؟

القراءة فقطالبناء العملي
فهم سطحيفهم عميق
نسيان سريعتذكر دائم
لا معرض أعمالمشاريع ملموسة
خوف من التطبيقثقة في البناء
مللمتعة

القاعدة الذهبية: لكل ساعة قراءة، خصص 3 ساعات للبناء.

المشروع 1: لعبة تخمين الرقم 🎮

الفكرة

الكمبيوتر يختار رقماً عشوائياً، والمستخدم يحاول تخمينه. بعد كل محاولة، يخبره الكمبيوتر إذا كان تخمينه أعلى أم أقل.

المهارات المكتسبة

  • random — توليد أرقام عشوائية
  • while — التكرار حتى تحقيق شرط
  • if/elif/else — اتخاذ القرارات
  • input() — التفاعل مع المستخدم

الكود الكامل

import random

def play_game():
    """لعبة تخمين الرقم"""
    print("=" * 45)
    print("🎮 لعبة تخمين الرقم")
    print("=" * 45)
    print("فكرت في رقم بين 1 و 100")
    print("حاول تخمينه في أقل عدد من المحاولات!")
    print()
    
    secret = random.randint(1, 100)
    attempts = 0
    max_attempts = 10
    
    while attempts < max_attempts:
        try:
            guess = int(input(f"محاولة {attempts + 1}/{max_attempts} - تخمينك: "))
        except ValueError:
            print("❌ يرجى إدخال رقم صحيح")
            continue
        
        attempts += 1
        
        if guess < 1 or guess > 100:
            print("⚠️ الرقم يجب أن يكون بين 1 و 100")
            continue
        
        if guess == secret:
            print(f"\n🎉 مبروك! خمنت الرقم {secret} في {attempts} محاولات!")
            return
        
        elif guess < secret:
            remaining = max_attempts - attempts
            print(f"⬆️ الرقم أكبر من {guess} (متبقي {remaining} محاولات)")
        
        else:
            remaining = max_attempts - attempts
            print(f"⬇️ الرقم أصغر من {guess} (متبقي {remaining} محاولات)")
    
    print(f"\n😔 انتهت المحاولات! الرقم كان: {secret}")

def main():
    """الدالة الرئيسية"""
    while True:
        play_game()
        
        again = input("\nهل تريد اللعب مرة أخرى؟ (نعم/لا): ").strip()
        if again != "نعم":
            print("👋 شكراً للعب!")
            break

# تشغيل اللعبة
main()

شرح الكود

السطرالشرح
import randomاستيراد مكتبة الأرقام العشوائية
random.randint(1, 100)توليد رقم عشوائي بين 1 و 100
try / exceptالتعامل مع الأخطاء عند إدخال نص بدلاً من رقم
attempts += 1زيادة عداد المحاولات
returnإنهاء الدالة عند الفوز

تحديات إضافية

  • أضف مستويات صعوبة (سهل: 1-50، صعب: 1-500)
  • احفظ أفضل نتيجة (أقل محاولات) في ملف
  • أضف مؤقت زمني لكل محاولة

المشروع 2: آلة حاسبة بسيطة 🧮

الفكرة

برنامج يطلب من المستخدم رقمين وعملية حسابية، ثم يطبع النتيجة. مع معالجة الأخطاء (مثل القسمة على صفر).

المهارات المكتسبة

  • الدوال (Functions)
  • if/elif/else متعددة
  • معالجة الأخطاء (try/except)
  • المدخلات والمخرجات

الكود الكامل

def add(a, b):
    """جمع رقمين"""
    return a + b

def subtract(a, b):
    """طرح رقمين"""
    return a - b

def multiply(a, b):
    """ضرب رقمين"""
    return a * b

def divide(a, b):
    """قسمة رقمين"""
    if b == 0:
        raise ValueError("لا يمكن القسمة على صفر")
    return a / b

def power(a, b):
    """رفع رقم لقوة"""
    return a ** b

def show_menu():
    """عرض قائمة العمليات"""
    print("\n" + "=" * 35)
    print("🧮 آلة حاسبة Python")
    print("=" * 35)
    print("1. جمع")
    print("2. طرح")
    print("3. ضرب")
    print("4. قسمة")
    print("5. قوة")
    print("6. خروج")
    print("=" * 35)

def get_numbers():
    """قراءة رقمين من المستخدم"""
    try:
        a = float(input("الرقم الأول: "))
        b = float(input("الرقم الثاني: "))
        return a, b
    except ValueError:
        print("❌ يرجى إدخال أرقام صحيحة")
        return None, None

def calculator():
    """الدالة الرئيسية للآلة الحاسبة"""
    operations = {
        "1": ("الجمع", add),
        "2": ("الطرح", subtract),
        "3": ("الضرب", multiply),
        "4": ("القسمة", divide),
        "5": ("القوة", power),
    }
    
    history = []
    
    while True:
        show_menu()
        choice = input("اختر العملية (1-6): ").strip()
        
        if choice == "6":
            print("\n📋 سجل العمليات:")
            if history:
                for i, op in enumerate(history, 1):
                    print(f"  {i}. {op}")
            else:
                print("  لا توجد عمليات")
            print("\n👋 وداعاً!")
            break
        
        if choice not in operations:
            print("❌ اختيار غير صحيح")
            continue
        
        op_name, op_func = operations[choice]
        print(f"\n📌 اخترت: {op_name}")
        
        a, b = get_numbers()
        if a is None:
            continue
        
        try:
            result = op_func(a, b)
            print(f"\n✅ النتيجة: {a} {get_symbol(choice)} {b} = {result}")
            history.append(f"{a} {get_symbol(choice)} {b} = {result}")
        except ValueError as e:
            print(f"\n❌ خطأ: {e}")

def get_symbol(choice):
    """إرجاع رمز العملية"""
    symbols = {
        "1": "+",
        "2": "-",
        "3": "×",
        "4": "÷",
        "5": "^",
    }
    return symbols.get(choice, "?")

# تشغيل الآلة الحاسبة
calculator()

شرح الكود

العنصرالشرح
raise ValueErrorإطلاق خطأ مخصص عند القسمة على صفر
operations = {...}قاموس يربط كل اختيار بدالته
history = []قائمة لحفظ سجل العمليات
enumerate(history, 1)ترقيم العمليات بدءاً من 1

تحديات إضافية

  • أضف عمليات: الجذر التربيعي، اللوغاريتم
  • احفظ السجل في ملف نصي
  • أضف واجهة رسومية بسيطة بـ Tkinter

المشروع 3: تطبيق قائمة مهام ✅

الفكرة

تطبيق لإدارة المهام اليومية: إضافة، عرض، إكمال، حذف. مع تخزين البيانات في ملف JSON.

المهارات المكتسبة

  • القوائم والقواميس
  • قراءة/كتابة الملفات (JSON)
  • الدوال المتعددة
  • التعامل مع البيانات

الكود الكامل

import json
import os
from datetime import datetime

DATA_FILE = "tasks.json"

def load_tasks():
    """تحميل المهام من الملف"""
    if os.path.exists(DATA_FILE):
        with open(DATA_FILE, "r", encoding="utf-8") as f:
            return json.load(f)
    return []

def save_tasks(tasks):
    """حفظ المهام في الملف"""
    with open(DATA_FILE, "w", encoding="utf-8") as f:
        json.dump(tasks, f, ensure_ascii=False, indent=2)

def add_task(tasks, title):
    """إضافة مهمة جديدة"""
    task = {
        "id": len(tasks) + 1,
        "title": title,
        "done": False,
        "created": datetime.now().strftime("%Y-%m-%d %H:%M"),
    }
    tasks.append(task)
    save_tasks(tasks)
    print(f"✅ تمت إضافة: {title}")

def list_tasks(tasks):
    """عرض جميع المهام"""
    if not tasks:
        print("📭 لا توجد مهام")
        return
    
    print("\n" + "=" * 55)
    print(f"📋 قائمة المهام ({len(tasks)} مهمة)")
    print("=" * 55)
    
    for task in tasks:
        status = "✅" if task["done"] else "⏳"
        print(f"  {status} [{task['id']}] {task['title']}")
        print(f"      📅 {task['created']}")
    
    print("=" * 55)

def complete_task(tasks, task_id):
    """إكمال مهمة"""
    for task in tasks:
        if task["id"] == task_id:
            task["done"] = True
            save_tasks(tasks)
            print(f"🎉 تم إكمال: {task['title']}")
            return
    print("❌ المهمة غير موجودة")

def delete_task(tasks, task_id):
    """حذف مهمة"""
    for i, task in enumerate(tasks):
        if task["id"] == task_id:
            removed = tasks.pop(i)
            save_tasks(tasks)
            print(f"🗑️ تم حذف: {removed['title']}")
            return
    print("❌ المهمة غير موجودة")

def show_menu():
    """عرض القائمة الرئيسية"""
    print("\n" + "=" * 35)
    print("📝 مدير المهام")
    print("=" * 35)
    print("1. إضافة مهمة")
    print("2. عرض المهام")
    print("3. إكمال مهمة")
    print("4. حذف مهمة")
    print("5. خروج")
    print("=" * 35)

def main():
    """الدالة الرئيسية"""
    tasks = load_tasks()
    print("👋 مرحباً بك في مدير المهام!")
    
    while True:
        show_menu()
        choice = input("اختر (1-5): ").strip()
        
        if choice == "1":
            title = input("عنوان المهمة: ").strip()
            if title:
                add_task(tasks, title)
            else:
                print("❌ العنوان لا يمكن أن يكون فارغاً")
        
        elif choice == "2":
            list_tasks(tasks)
        
        elif choice == "3":
            list_tasks(tasks)
            try:
                task_id = int(input("رقم المهمة المكتملة: "))
                complete_task(tasks, task_id)
            except ValueError:
                print("❌ رقم غير صحيح")
        
        elif choice == "4":
            list_tasks(tasks)
            try:
                task_id = int(input("رقم المهمة المراد حذفها: "))
                delete_task(tasks, task_id)
            except ValueError:
                print("❌ رقم غير صحيح")
        
        elif choice == "5":
            print("👋 وداعاً!")
            break
        
        else:
            print("❌ اختيار غير صحيح")

# تشغيل التطبيق
if __name__ == "__main__":
    main()

شرح الكود

العنصرالشرح
json.load()قراءة بيانات JSON من ملف
json.dump()كتابة بيانات بصيغة JSON
ensure_ascii=Falseالحفاظ على الأحرف العربية
os.path.exists()التحقق من وجود ملف
datetime.now()الحصول على التاريخ والوقت الحالي

تحديات إضافية

  • أضف أولويات للمهام (عالية، متوسطة، منخفضة)
  • أضف مواعيد نهائية
  • أضف تصنيفات (عمل، شخصي، دراسة)

المشروع 4: مدير كلمات المرور 🔐

الفكرة

تطبيق آمن لتخزين كلمات المرور محلياً. يحفظ كلمات المرور مشفرة، ويسمح بالبحث والنسخ.

المهارات المكتسبة

  • التشفير (Hashlib)
  • قاعدة بيانات SQLite
  • توليد كلمات مرور قوية
  • التعامل مع الأخطاء

الكود الكامل

import sqlite3
import hashlib
import secrets
import string
import os

DB_FILE = "passwords.db"

def init_db():
    """تهيئة قاعدة البيانات"""
    conn = sqlite3.connect(DB_FILE)
    cursor = conn.cursor()
    cursor.execute("""
        CREATE TABLE IF NOT EXISTS passwords (
            id INTEGER PRIMARY KEY AUTOINCREMENT,
            service TEXT NOT NULL,
            username TEXT NOT NULL,
            password_hash TEXT NOT NULL,
            created TEXT NOT NULL
        )
    """)
    conn.commit()
    conn.close()

def generate_password(length=16):
    """توليد كلمة مرور قوية"""
    chars = string.ascii_letters + string.digits + "!@#$%^&*"
    return "".join(secrets.choice(chars) for _ in range(length))

def hash_password(password):
    """تشفير كلمة المرور"""
    return hashlib.sha256(password.encode()).hexdigest()

def add_password(service, username, password):
    """إضافة كلمة مرور جديدة"""
    conn = sqlite3.connect(DB_FILE)
    cursor = conn.cursor()
    cursor.execute(
        "INSERT INTO passwords (service, username, password_hash, created) VALUES (?, ?, ?, datetime('now'))",
        (service, username, hash_password(password))
    )
    conn.commit()
    conn.close()
    print(f"✅ تم حفظ كلمة مرور {service}")

def list_services():
    """عرض جميع الخدمات المحفوظة"""
    conn = sqlite3.connect(DB_FILE)
    cursor = conn.cursor()
    cursor.execute("SELECT id, service, username, created FROM passwords ORDER BY service")
    rows = cursor.fetchall()
    conn.close()
    
    if not rows:
        print("📭 لا توجد كلمات مرور محفوظة")
        return
    
    print("\n" + "=" * 55)
    print(f"🔐 كلمات المرور المحفوظة ({len(rows)})")
    print("=" * 55)
    for row in rows:
        print(f"  [{row[0]}] {row[1]}")
        print(f"      👤 {row[2]}")
        print(f"      📅 {row[3]}")
    print("=" * 55)

def check_password(service, password):
    """التحقق من كلمة مرور"""
    conn = sqlite3.connect(DB_FILE)
    cursor = conn.cursor()
    cursor.execute(
        "SELECT password_hash FROM passwords WHERE service = ?",
        (service,)
    )
    row = cursor.fetchone()
    conn.close()
    
    if not row:
        print(f"❌ لا توجد خدمة باسم {service}")
        return
    
    if row[0] == hash_password(password):
        print("✅ كلمة المرور صحيحة")
    else:
        print("❌ كلمة المرور خاطئة")

def delete_password(service):
    """حذف كلمة مرور"""
    conn = sqlite3.connect(DB_FILE)
    cursor = conn.cursor()
    cursor.execute("DELETE FROM passwords WHERE service = ?", (service,))
    conn.commit()
    affected = cursor.rowcount
    conn.close()
    
    if affected:
        print(f"🗑️ تم حذف {service}")
    else:
        print(f"❌ لا توجد خدمة باسم {service}")

def show_menu():
    """عرض القائمة"""
    print("\n" + "=" * 35)
    print("🔐 مدير كلمات المرور")
    print("=" * 35)
    print("1. إضافة كلمة مرور")
    print("2. عرض الخدمات")
    print("3. التحقق من كلمة مرور")
    print("4. حذف كلمة مرور")
    print("5. توليد كلمة مرور قوية")
    print("6. خروج")
    print("=" * 35)

def main():
    """الدالة الرئيسية"""
    init_db()
    print("👋 مرحباً بك في مدير كلمات المرور الآمن!")
    
    while True:
        show_menu()
        choice = input("اختر (1-6): ").strip()
        
        if choice == "1":
            service = input("اسم الخدمة (مثل: Gmail): ").strip()
            username = input("اسم المستخدم: ").strip()
            
            password = input("كلمة المرور (أو 'توليد' لتوليدها): ").strip()
            if password == "توليد":
                password = generate_password()
                print(f"🔑 كلمة المرور المولدة: {password}")
                print("⚠️ احفظها في مكان آمن!")
            
            add_password(service, username, password)
        
        elif choice == "2":
            list_services()
        
        elif choice == "3":
            service = input("اسم الخدمة: ").strip()
            password = input("كلمة المرور: ").strip()
            check_password(service, password)
        
        elif choice == "4":
            service = input("اسم الخدمة المراد حذفها: ").strip()
            confirm = input(f"هل أنت متأكد من حذف {service}؟ (نعم/لا): ").strip()
            if confirm == "نعم":
                delete_password(service)
        
        elif choice == "5":
            length = input("طول كلمة المرور (افتراضي 16): ").strip()
            length = int(length) if length.isdigit() else 16
            print(f"🔑 كلمة المرور المولدة: {generate_password(length)}")
        
        elif choice == "6":
            print("👋 وداعاً!")
            break
        
        else:
            print("❌ اختيار غير صحيح")

if __name__ == "__main__":
    main()

شرح الكود

العنصرالشرح
sqlite3قاعدة بيانات خفيفة مدمجة في Python
hashlib.sha256()تشفير كلمة المرور — لا يمكن فكها
secrets.choice()توليد أحرف عشوائية آمنة
cursor.execute()تنفيذ أوامر SQL
? في SQLحماية من هجمات SQL Injection

تحديات إضافية

  • أضف تشفيراً حقيقياً (Fernet من cryptography)
  • أضف كلمة مرور رئيسية للبرنامج
  • صدّر إلى ملف CSV

المشروع 5: حاسبة العمر 📅

الفكرة

برنامج يحسب عمرك بالسنوات والأشهر والأيام والساعات، ويخبرك ببعض المعلومات الممتعة عن حياتك.

المهارات المكتسبة

  • وحدة datetime
  • حسابات التواريخ
  • التنسيق والإخراج الجميل

الكود الكامل

from datetime import datetime

def get_birthdate():
    """قراءة تاريخ الميلاد من المستخدم"""
    while True:
        date_str = input("أدخل تاريخ ميلادك (يوم/شهر/سنة - مثال: 15/06/1995): ").strip()
        try:
            birthdate = datetime.strptime(date_str, "%d/%m/%Y")
            
            if birthdate > datetime.now():
                print("❌ التاريخ في المستقبل! يرجى التحقق")
                continue
            
            return birthdate
        except ValueError:
            print("❌ صيغة خاطئة. استخدم: يوم/شهر/سنة")

def calculate_age(birthdate):
    """حساب العمر بالتفصيل"""
    now = datetime.now()
    
    # حساب السنوات
    years = now.year - birthdate.year
    months = now.month - birthdate.month
    days = now.day - birthdate.day
    
    # تصحيح الحسابات
    if days < 0:
        months -= 1
        # عدد أيام الشهر السابق
        prev_month = now.month - 1 if now.month > 1 else 12
        prev_year = now.year if now.month > 1 else now.year - 1
        days_in_prev = (datetime(prev_year, prev_month % 12 + 1, 1) - datetime(prev_year, prev_month, 1)).days
        days += days_in_prev
    
    if months < 0:
        years -= 1
        months += 12
    
    return years, months, days

def calculate_extras(birthdate):
    """حسابات إضافية ممتعة"""
    now = datetime.now()
    delta = now - birthdate
    
    total_days = delta.days
    total_hours = total_days * 24
    total_minutes = total_hours * 60
    total_seconds = total_minutes * 60
    total_weeks = total_days // 7
    
    # معلومات ممتعة
    heartbeats = total_minutes * 70  # ~70 نبضة/دقيقة
    breaths = total_minutes * 16     # ~16 نفس/دقيقة
    sleep_hours = total_hours // 3   # ثلث الحياة نوم
    
    return {
        "total_days": total_days,
        "total_weeks": total_weeks,
        "total_hours": total_hours,
        "total_minutes": total_minutes,
        "total_seconds": total_seconds,
        "heartbeats": heartbeats,
        "breaths": breaths,
        "sleep_hours": sleep_hours,
    }

def days_to_next_birthday(birthdate):
    """كم يوماً حتى عيد الميلاد القادم؟"""
    now = datetime.now()
    next_birthday = birthdate.replace(year=now.year)
    
    if next_birthday < now:
        next_birthday = next_birthday.replace(year=now.year + 1)
    
    delta = next_birthday - now
    return delta.days, next_birthday

def show_results(birthdate):
    """عرض النتائج بشكل جميل"""
    years, months, days = calculate_age(birthdate)
    extras = calculate_extras(birthdate)
    days_left, next_bday = days_to_next_birthday(birthdate)
    
    print("\n" + "=" * 50)
    print("📅 نتائج حاسبة العمر")
    print("=" * 50)
    
    print(f"\n🎂 عمرك:")
    print(f"   {years} سنة، {months} شهر، {days} يوم")
    
    print(f"\n📊 إحصائيات حياتك:")
    print(f"   📆 الأيام: {extras['total_days']:,}")
    print(f"   📅 الأسابيع: {extras['total_weeks']:,}")
    print(f"   ⏰ الساعات: {extras['total_hours']:,}")
    print(f"   ⏱ الدقائق: {extras['total_minutes']:,}")
    print(f"   💓 نبضات قلبك: ~{extras['heartbeats']:,}")
    print(f"   💨 أنفاسك: ~{extras['breaths']:,}")
    print(f"   😴 ساعات نومك: ~{extras['sleep_hours']:,}")
    
    print(f"\n🎉 عيد ميلادك القادم:")
    print(f"   📅 {next_bday.strftime('%d/%m/%Y')}")
    print(f"   ⏳ بعد {days_left} يوماً")
    
    # معلومات ممتعة
    print(f"\n💡 هل تعلم؟")
    print(f"   • يوم ميلادك: {birthdate.strftime('%A')}")
    
    print("=" * 50)

def main():
    """الدالة الرئيسية"""
    print("🎂 مرحباً بك في حاسبة العمر!")
    print()
    
    birthdate = get_birthdate()
    show_results(birthdate)
    
    print("\n👋 شكراً لاستخدامك حاسبة العمر!")

if __name__ == "__main__":
    main()

شرح الكود

العنصرالشرح
datetime.strptime()تحويل نص إلى تاريخ
datetime.now()التاريخ والوقت الحالي
delta.daysعدد الأيام في الفترة
{:,}فصل الآلاف بفواصل (1,000,000)
strftime('%A')اسم اليوم (الأحد، الاثنين...)

تحديات إضافية

  • احسب العمر على كواكب أخرى (المريخ، المشتري)
  • أضف حساب البرج الفلكي
  • أنشئ رسوماً بيانية (باستخدام matplotlib)

نصائح لبناء معرض أعمالك

1. ارفع مشاريعك على GitHub

# لكل مشروع
mkdir my-project
cd my-project
git init
git add .
git commit -m "Initial commit"
# ثم ارفعه على GitHub

2. اكتب README احترافي

# اسم المشروع

## الوصف
ماذا يفعل المشروع؟

## المميزات
- ميزة 1
- ميزة 2

## كيفية التشغيل
```bash
python main.py

التقنيات المستخدمة

  • Python 3.12

### 3. حسّن مشاريعك

- **أضف تعليقات** — اشرح كودك
- **نظّم الملفات** — لا تجعل كل شيء في ملف واحد
- **اختبر المشروع** — تأكد من عدم وجود أخطاء

## خطة التطوير لكل مشروع

<table>
  <thead>
    <tr>
      <th>المشروع</th>
      <th>المستوى الحالي</th>
      <th>التطوير التالي</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>لعبة التخمين</strong></td>
      <td>أساسي</td>
      <td>إضافة مستويات + قاعدة بيانات</td>
    </tr>
    <tr>
      <td><strong>الآلة الحاسبة</strong></td>
      <td>أساسي</td>
      <td>واجهة رسومية Tkinter</td>
    </tr>
    <tr>
      <td><strong>قائمة المهام</strong></td>
      <td>متوسط</td>
      <td>واجهة ويب باستخدام Flask</td>
    </tr>
    <tr>
      <td><strong>مدير كلمات المرور</strong></td>
      <td>متقدم</td>
      <td>تشفير حقيقي + نسخ احتياطي</td>
    </tr>
    <tr>
      <td><strong>حاسبة العمر</strong></td>
      <td>أساسي</td>
      <td>رسوم بيانية + حفظ السجل</td>
    </tr>
  </tbody>
</table>

## قائمة تحقق — هل بنيت مشاريعك؟

<table>
  <thead>
    <tr>
      <th>المشروع</th>
      <th>الحالة</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>لعبة تخمين الرقم</td>
      <td>⬜</td>
    </tr>
    <tr>
      <td>آلة حاسبة</td>
      <td>⬜</td>
    </tr>
    <tr>
      <td>تطبيق قائمة مهام</td>
      <td>⬜</td>
    </tr>
    <tr>
      <td>مدير كلمات مرور</td>
      <td>⬜</td>
    </tr>
    <tr>
      <td>حاسبة العمر</td>
      <td>⬜</td>
    </tr>
  </tbody>
</table>

## الخلاصة

في هذا المقال، بنيت 5 مشاريع Python حقيقية:
1. 🎮 **لعبة تخمين الرقم** — الحلقات والشروط
2. 🧮 **آلة حاسبة** — الدوال والعمليات
3. ✅ **تطبيق مهام** — الملفات والبيانات
4. 🔐 **مدير كلمات مرور** — قاعدة بيانات وتشفير
5. 📅 **حاسبة العمر** — التواريخ والحسابات

**الآن لديك معرض أعمال حقيقي!**

**الخطوة التالية:**
- ارفع المشاريع على GitHub
- أضفها إلى سيرتك الذاتية
- شاركها على X و LinkedIn
- ابنِ مشاريع أكبر

**في المقال القادم:** سنتعلم **Git و GitHub** — كيف تحفظ كودك وتشاركه مع العالم!

**ما المشروع الذي أعجبك أكثر؟ شاركنا في التعليقات!**
فريق نهضة

فريق نهضة

فريق عربي متخصص في التقنية والذكاء الاصطناعي وتطوير الذات

📚 مقالات ذات صلة

الدوال (Functions) في Python — نظّم كودك باحتراف
البرمجة

الدوال (Functions) في Python — نظّم كودك باحتراف

دليل شامل لتعلم الدوال في Python — تعريف الدوال، المعاملات، القيم المُرجعة، الدوال المجهولة، مع مشاريع تطبيقية خطوة بخطوة

الحلقات في Python — كرر المهام بذكاء
البرمجة

الحلقات في Python — كرر المهام بذكاء

دليل شامل لتعلم الحلقات في Python — for و while و range و break و continue مع مشاريع تفاعلية خطوة بخطوة

الشروط في Python — كيف تجعل برنامجك يتخذ قرارات؟
البرمجة

الشروط في Python — كيف تجعل برنامجك يتخذ قرارات؟

دليل شامل لتعلم الشروط في Python — if, else, elif والعوامل المنطقية مع أمثلة عملية ومشاريع تفاعلية خطوة بخطوة