١. لماذا بايثون؟ وكيف تبدأ؟
بايثون لغة برمجة مفتوحة المصدر، كودها يشبه اللغة الإنجليزية العادية مما يجعلها الأسهل للمبتدئين. في نفس الوقت تستخدمها كبرى الشركات كـ Google وNetflix وNASA.
تثبيت بايثون
اذهب إلى python.org/downloads وحمّل أحدث نسخة. خلال التثبيت تأكد من تحديد خيار "Add Python to PATH" ثم تحقق:
# في Terminal أو CMD
python --version
# يجب أن تظهر: Python 3.x.x
أول برنامج لك
print("مرحباً بالعالم! 🌍")
print("أنا أتعلم بايثون الآن 🐍")
شغّله: python hello.py — إذا ظهرت الرسالة تهانينا! 🎉
٢. المتغيرات وأنواع البيانات
المتغير هو صندوق تحفظ فيه بياناتك. في بايثون لا تحتاج لتحديد النوع — بايثون يعرفه تلقائياً.
# نص (str)
name = "خليل"
city = "مراكش"
# رقم صحيح (int)
age = 14
year = 2025
# رقم عشري (float)
grade = 17.5
height = 1.75
# قيمة منطقية (bool)
is_student = True
is_tired = False
# طباعة مع f-string
print(f"مرحباً {name}، عمرك {age} من {city}")
print(type(age)) # <class 'int'>
print(type(name)) # <class 'str'>
تحويل أنواع البيانات
# input() يرجع نصاً دائماً — حوّله لرقم
age = int(input("أدخل عمرك: "))
price = float(input("أدخل السعر: "))
# رقم إلى نص
msg = "عمري " + str(age) + " سنة"
print(msg)
"عمري " + 14 سيعطي خطأ. يجب: "عمري " + str(14) أو استخدم f-string: f"عمري {age}"٣. العمليات الحسابية والمقارنة
| العملية | الرمز | مثال | النتيجة |
|---|---|---|---|
| جمع | + | 10 + 3 | 13 |
| طرح | - | 10 - 3 | 7 |
| ضرب | * | 10 * 3 | 30 |
| قسمة | / | 10 / 3 | 3.333 |
| قسمة صحيحة | // | 10 // 3 | 3 |
| باقي القسمة | % | 10 % 3 | 1 |
| قوة / أس | ** | 2 ** 8 | 256 |
# هل العدد زوجي؟
n = 14
print(n % 2 == 0) # True
# اختصارات
score = 10
score += 5 # 15
score *= 2 # 30
print(score)
# تقريب رقم عشري
avg = 17.666
print(round(avg, 2)) # 17.67
print(f"{avg:.1f}") # 17.7
٤. الشروط (if / elif / else)
الشروط تجعل برنامجك يتخذ قرارات بناءً على البيانات.
age = int(input("أدخل عمرك: "))
if age >= 18:
print("أنت بالغ ✅")
elif age >= 13:
print("أنت مراهق 🧑")
else:
print("أنت طفل 🧒")
# مثال and / or
user = input("المستخدم: ")
pwd = input("كلمة المرور: ")
if user == "admin" and pwd == "1234":
print("مرحباً في لوحة التحكم 🎛️")
else:
print("بيانات خاطئة ❌")
| الرمز | المعنى | مثال → نتيجة |
|---|---|---|
== | يساوي | 5 == 5 → True |
!= | لا يساوي | 5 != 3 → True |
>= | أكبر أو يساوي | 5 >= 5 → True |
and | كلاهما صحيح | True and True → True |
or | أحدهما صحيح | True or False → True |
not | نفي | not True → False |
🏆 تحدي — نظام تقديرات المدرسة
اكتب برنامجاً يطلب الدرجة (0-20) ثم يطبع: 18+ ممتاز، 15+ جيد جداً، 12+ جيد، 10+ مقبول، أقل راسب.
grade = float(input("أدخل درجتك: "))
if grade >= 18: print("ممتاز 🌟")
elif grade >= 15: print("جيد جداً 👍")
elif grade >= 12: print("جيد 😊")
elif grade >= 10: print("مقبول 😐")
else: print("راسب ❌")
٥. الحلقات (Loops)
الحلقات تكرر الكود دون أن تكتبه مرات كثيرة. نوعان: for لعدد معروف، وwhile لشرط معين.
حلقة for
# 1 إلى 5
for i in range(1, 6):
print(f"رقم: {i}") # 1 2 3 4 5
# range(start, stop, step)
for i in range(0, 20, 5):
print(i) # 0 5 10 15
# المرور على قائمة
fruits = ["تفاح", "موز", "برتقال"]
for f in fruits:
print(f"🍎 {f}")
# مع رقم الترتيب
for i, f in enumerate(fruits, 1):
print(f"{i}. {f}")
حلقة while
# لعبة تخمين بسيطة
import random
secret = random.randint(1, 10)
attempts = 0
while True:
guess = int(input("خمن (1-10): "))
attempts += 1
if guess < secret:
print("أكبر! ⬆️")
elif guess > secret:
print("أصغر! ⬇️")
else:
print(f"🎉 صح! في {attempts} محاولة")
break
while تأكد أن الشرط سيصبح False في نقطة ما. إذا علق البرنامج اضغط Ctrl+C.٦. الدوال (Functions)
الدالة كتلة كود يمكن استدعاؤها متى أردت. بدل كتابة نفس الكود 10 مرات — اكتبه مرة وادعه.
# دالة بسيطة
def greet(name, country="المغرب"):
print(f"مرحباً {name} من {country} 👋")
greet("خليل") # المغرب افتراضياً
greet("أحمد", "مصر")
# دالة ترجع قيمة
def average(grades):
if not grades:
return 0
return sum(grades) / len(grades)
my_grades = [18, 15, 19, 16]
print(f"معدلك: {average(my_grades):.1f}") # 17.0
# دالة تتحقق من صحة كلمة مرور
def is_valid_password(pwd):
if len(pwd) < 8:
return False, "قصيرة جداً (أقل من 8 أحرف)"
if pwd.isalpha():
return False, "يجب أن تحتوي على أرقام"
return True, "كلمة مرور قوية ✅"
ok, msg = is_valid_password("abc123def")
print(msg)
٧. القوائم (Lists)
القائمة تخزن مجموعة من العناصر بترتيب معين. يمكن تعديلها — إضافة، حذف، ترتيب.
students = ["خليل", "أحمد", "فاطمة", "سارة"]
# الوصول — يبدأ من 0
print(students[0]) # خليل
print(students[-1]) # سارة (الأخير)
print(students[1:3]) # ['أحمد', 'فاطمة']
# تعديل القائمة
students.append("يوسف") # إضافة في النهاية
students.insert(1, "منى") # إضافة في موقع محدد
students.remove("أحمد") # حذف بالقيمة
removed = students.pop(0) # حذف بالموقع + إرجاع القيمة
# معلومات عن القائمة
print(len(students)) # عدد العناصر
print("فاطمة" in students) # True/False
print(sorted(students)) # ترتيب أبجدي
# List Comprehension — احترافي ومختصر
squares = [x**2 for x in range(1,6)]
print(squares) # [1, 4, 9, 16, 25]
evens = [x for x in range(20) if x % 2 == 0]
print(evens) # [0, 2, 4, 6, 8, ...]
٨. القواميس (Dictionaries)
القاموس يخزن بيانات كزوج مفتاح-قيمة. مثل بطاقة هوية: "name" → "خليل".
student = {
"name": "خليل",
"age": 14,
"city": "مراكش",
"grades": [18, 16, 19]
}
# قراءة
print(student["name"]) # خليل
print(student.get("phone", "غير محدد")) # get آمن
# إضافة وتعديل
student["email"] = "k@example.com"
student["age"] = 15
# المرور على القاموس
for key, val in student.items():
print(f"{key}: {val}")
# قاموس داخل قائمة — شيء شائع جداً
class_list = [
{"name": "خليل", "grade": 18},
{"name": "أحمد", "grade": 15},
{"name": "سارة", "grade": 19}
]
for s in class_list:
print(f"{s['name']}: {s['grade']}/20")
٩. معالجة الأخطاء (Try / Except)
الأخطاء طبيعية. بدل أن يتوقف برنامجك، "امسك" الخطأ وتعامل معه بأمان.
try:
num = int(input("أدخل رقماً: "))
result = 100 / num
print(f"النتيجة: {result}")
except ZeroDivisionError:
print("خطأ: لا يمكن القسمة على صفر!")
except ValueError:
print("خطأ: يرجى إدخال رقم صحيح!")
except Exception as e:
print(f"خطأ غير متوقع: {e}")
finally:
print("انتهى البرنامج — دائماً يُنفَّذ.")
try/except مع كل input() أو عمليات الملفات. المستخدم قد يكتب أي شيء!🚀 المشروع النهائي — نظام قائمة المهام
طبّق كل ما تعلمته في مشروع حقيقي: برنامج كامل لإدارة مهامك اليومية يعمل في Terminal.
# ============================
# 📋 تطبيق قائمة المهام
# ============================
tasks = []
def show_menu():
print("\n" + "="*30)
print(" 📋 قائمة المهام")
print("="*30)
print("1️⃣ عرض المهام")
print("2️⃣ إضافة مهمة")
print("3️⃣ حذف مهمة")
print("4️⃣ تفريغ الكل")
print("0️⃣ خروج")
def show_tasks():
if not tasks:
print(" 📭 لا توجد مهام بعد!")
return
print(f"\n لديك {len(tasks)} مهام:")
for i, task in enumerate(tasks, 1):
print(f" {i}. ☐ {task}")
def add_task():
task = input(" اكتب المهمة: ").strip()
if task:
tasks.append(task)
print(f" ✅ أُضيفت: {task}")
else:
print(" ⚠️ لا يمكن إضافة مهمة فارغة")
def delete_task():
show_tasks()
if not tasks: return
try:
n = int(input(" رقم المهمة للحذف: "))
print(f" 🗑️ حُذفت: {tasks.pop(n - 1)}")
except (ValueError, IndexError):
print(" ❌ رقم غير صالح")
# الحلقة الرئيسية
print("مرحباً في تطبيق المهام! 🎯")
while True:
show_menu()
choice = input("اختر: ").strip()
if choice == "1": show_tasks()
elif choice == "2": add_task()
elif choice == "3": delete_task()
elif choice == "4": tasks.clear(); print(" 🧹 تم تفريغ القائمة")
elif choice == "0": print("إلى اللقاء! 👋"); break
else: print(" ❓ اختيار غير معروف")
todo_app.py وشغّله بـ python todo_app.py. هذا تطبيق كامل يعمل فعلاً!🎉 أنهيت درس الأساسيات!
أتقنت المتغيرات، الشروط، الحلقات، الدوال، القوائم، القواميس، ومعالجة الأخطاء.
الدرس التالي: برمجة الكائنات (OOP) — ستنظم كودك كالمحترفين.
الدرس التالي: برمجة الكائنات ←