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 — نظّم كودك باحتراف
دليل شامل لتعلم الدوال في Python — تعريف الدوال، المعاملات، القيم المُرجعة، الدوال المجهولة، مع مشاريع تطبيقية خطوة بخطوة
الحلقات في Python — كرر المهام بذكاء
دليل شامل لتعلم الحلقات في Python — for و while و range و break و continue مع مشاريع تفاعلية خطوة بخطوة
الشروط في Python — كيف تجعل برنامجك يتخذ قرارات؟
دليل شامل لتعلم الشروط في Python — if, else, elif والعوامل المنطقية مع أمثلة عملية ومشاريع تفاعلية خطوة بخطوة