البرمجة📅 2026-09-22⏱ 11 دقائق قراءة🐍 مقال 4 من 10

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

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

حتى الآن، برامجنا تنفذ الأوامر بالترتيب من الأعلى إلى الأسفل — دون توقف، دون تفكير، دون قرارات. لكن البرامج الحقيقية تحتاج أن تتخذ قرارات: "إذا كان المستخدم بالغاً، اعرض محتوى معيناً"، "إذا كانت كلمة المرور صحيحة، اسمح بالدخول".

هنا يأتي دور الشروط (Conditions) — التي تمنح برنامجك القدرة على التفكير واتخاذ القرارات.

بنهاية هذا المقال، ستكون قادراً على:

  • استخدام if لتنفيذ كود عند تحقق شرط
  • استخدام else لتنفيذ بديل عند عدم التحقق
  • استخدام elif لسلسلة من الشروط
  • استخدام العوامل المنطقية and، or، not
  • بناء برامج تفاعلية تتخذ قرارات ذكية

1. جملة if — أساس كل الشروط

ما هي جملة if؟

if هي أبسط أنواع الشروط. تخبر Python: "إذا تحقق هذا الشرط، نفّذ الكود التالي".

الصيغة الأساسية

if الشرط:
    # الكود الذي يُنفذ عند تحقق الشرط

⚠️ ملاحظات مهمة:

  • الشرط ينتهي بنقطتين :
  • الكود بعدها يجب أن يكون مُزاحاً (Indented) بمسافة بادئة (4 مسافات أو Tab)
  • الإزاحة ليست تجميلية — إنها جزء من قواعد Python!

أول مثال

age = 20

if age >= 18:
    print("أنت بالغ")

print("هذا السطر يُنفذ دائماً")

النتيجة:

أنت بالغ
هذا السطر يُنفذ دائماً

شرح:

  • age = 20 → المتغير يساوي 20
  • if age >= 18: → هل 20 أكبر من أو يساوي 18؟ نعم
  • print("أنت بالغ") → يُنفذ (لأنه داخل الـ if)
  • print("هذا السطر...") → يُنفذ دائماً (خارج الـ if)

مثال: الشرط غير متحقق

age = 15

if age >= 18:
    print("أنت بالغ")

print("هذا السطر يُنفذ دائماً")

النتيجة:

هذا السطر يُنفذ دائماً

لاحظ: سطر "أنت بالغ" لم يُنفذ لأن الشرط غير متحقق.

2. الإزاحة (Indentation) — قانون Python المقدس

لماذا الإزاحة مهمة؟

Python تستخدم الإزاحة لتحديد ما هو داخل الـ if وما هو خارجه. هذا مختلف عن كثير من اللغات التي تستخدم { }.

مثال يوضح الفرق

age = 20

# صحيح — سطران داخل الـ if
if age >= 18:
    print("أنت بالغ")
    print("يمكنك التصويت")

print("هذا السطر خارج الـ if")

النتيجة:

أنت بالغ
يمكنك التصويت
هذا السطر خارج الـ if
age = 20

# صحيح — سطر واحد فقط داخل الـ if
if age >= 18:
    print("أنت بالغ")
print("هذا السطر خارج الـ if دائماً")

النتيجة:

أنت بالغ
هذا السطر خارج الـ if دائماً

الأخطاء الشائعة في الإزاحة

خطأ 1: نسيان الإزاحة

# خطأ
if age >= 18:
print("أنت بالغ")

الخطأ: IndentationError: expected an indented block

خطأ 2: إزاحة غير متساوية

# خطأ
if age >= 18:
    print("أنت بالغ")
     print("يمكنك التصويت")   # إزاحة إضافية

الخطأ: IndentationError: unexpected indent

القاعدة الذهبية: استخدم 4 مسافات ثابتة لكل مستوى إزاحة.

3. جملة else — البديل

ما هي جملة else؟

else تعني: "إذا لم يتحقق الشرط، نفّذ هذا الكود بدلاً منه".

الصيغة

if الشرط:
    # الكود عند تحقق الشرط
else:
    # الكود عند عدم تحقق الشرط

مثال: التحقق من العمر

age = 15

if age >= 18:
    print("أنت بالغ")
    print("يمكنك الحصول على رخصة القيادة")
else:
    print("أنت قاصر")
    print("انتظر حتى تبلغ 18")

النتيجة:

أنت قاصر
انتظر حتى تبلغ 18

مثال: التحقق من كلمة المرور

password = "python2026"

if password == "python2026":
    print("✅ تم تسجيل الدخول")
else:
    print("❌ كلمة المرور خاطئة")

النتيجة:

✅ تم تسجيل الدخول

4. جملة elif — سلسلة الشروط

ما هي elif؟

elif اختصار لـ "else if" — تتيح لك فحص عدة شروط بالتتابع.

الصيغة

if الشرط_الأول:
    # الكود
elif الشرط_الثاني:
    # الكود
elif الشرط_الثالث:
    # الكود
else:
    # الكود الافتراضي

ترتيب التنفيذ:

  1. Python يفحص الشرط الأول
  2. إذا تحقق → ينفذ الكود ويتجاهل الباقي
  3. إذا لم يتحقق → يفحص الشرط الثاني
  4. وهكذا...
  5. إذا لم يتحقق أي شرط → ينفذ else

مثال: تقدير الدرجات

score = 85

if score >= 90:
    print("الدرجة: ممتاز (A)")
elif score >= 80:
    print("الدرجة: جيد جداً (B)")
elif score >= 70:
    print("الدرجة: جيد (C)")
elif score >= 60:
    print("الدرجة: مقبول (D)")
else:
    print("الدرجة: راسب (F)")

النتيجة:

الدرجة: جيد جداً (B)

لماذا؟

  • 85 ليس ≥ 90 → تخطى
  • 85 ≥ 80 → ✅ تحقق → نفّذ وتوقف

مثال: تحديد الفئة العمرية

age = 25

if age < 13:
    print("طفل")
elif age < 20:
    print("مراهق")
elif age < 60:
    print("بالغ")
else:
    print("كبير في السن")

النتيجة:

بالغ

5. عوامل المقارنة — أدوات المقارنة

جدول عوامل المقارنة:

العاملالمعنىمثالالنتيجة
==يساوي5 == 5True
!=لا يساوي5 != 3True
>أكبر من5 > 3True
<أصغر من3 < 5True
>=أكبر من أو يساوي5 >= 5True
<=أصغر من أو يساوي3 <= 5True

⚠️ تحذير: = مقابل ==

أشهر خطأ للمبتدئين:

# خطأ — هذا إسناد وليس مقارنة
if x = 5:
    print("x يساوي 5")

# صحيح
if x == 5:
    print("x يساوي 5")

التفريق:

  • = → إسناد: "اجعل x يساوي 5"
  • == → مقارنة: "هل x يساوي 5؟"

أمثلة عملية

# مقارنة الأرقام
num = 10

print(num == 10)   # True
print(num != 5)    # True
print(num > 5)     # True
print(num < 20)    # True
print(num >= 10)   # True
print(num <= 9)    # False
# مقارنة النصوص
name = "أحمد"

if name == "أحمد":
    print("مرحباً أحمد!")

if name != "محمد":
    print("لست محمداً")

6. العوامل المنطقية — دمج الشروط

1. and — و (يجب تحقق الشرطين)

age = 25
has_license = True

if age >= 18 and has_license:
    print("يمكنك القيادة")
else:
    print("لا يمكنك القيادة")

النتيجة:

يمكنك القيادة

شرط and: يجب أن يتحقق الشرطين معاً.

2. or — أو (يكفي تحقق شرط واحد)

day = "الجمعة"

if day == "الجمعة" or day == "السبت":
    print("عطلة نهاية الأسبوع! 🎉")
else:
    print("يوم عمل")

النتيجة:

عطلة نهاية الأسبوع! 🎉

شرط or: يكفي تحقق أحد الشرطين.

3. not — ليس (عكس القيمة)

is_raining = False

if not is_raining:
    print("الطقس جيد — لنخرج!")
else:
    print("المطر ينزل — ابقَ في المنزل")

النتيجة:

الطقس جيد — لنخرج!

شرط not: يعكس القيمة (True → False والعكس).

جدول الحقيقة (Truth Table):

ABA and BA or Bnot A
TrueTrueTrueTrueFalse
TrueFalseFalseTrueFalse
FalseTrueFalseTrueTrue
FalseFalseFalseFalseTrue

مثال شامل — نظام تسجيل دخول

username = "admin"
password = "secret123"
is_active = True

if username == "admin" and password == "secret123" and is_active:
    print("✅ مرحباً بك في لوحة التحكم")
elif username == "admin" and password == "secret123" and not is_active:
    print("⚠️ حسابك معطل — تواصل مع الدعم")
else:
    print("❌ اسم المستخدم أو كلمة المرور خاطئة")

7. الشروط المتداخلة (Nested if)

ما هي الشروط المتداخلة؟

if داخل if آخر. نستخدمها عندما نحتاج فحص شرط إضافي بعد تحقق شرط سابق.

مثال: نظام الخصومات

is_member = True
purchase_amount = 150

if is_member:
    print("مرحباً بك في برنامج الولاء!")
    if purchase_amount >= 100:
        discount = purchase_amount * 0.20
        print(f"خصم 20% = {discount} ريال")
        print(f"المبلغ النهائي: {purchase_amount - discount} ريال")
    else:
        discount = purchase_amount * 0.10
        print(f"خصم 10% = {discount} ريال")
        print(f"المبلغ النهائي: {purchase_amount - discount} ريال")
else:
    print("سجل عضوية للحصول على خصومات!")

النتيجة:

مرحباً بك في برنامج الولاء!
خصم 20% = 30.0 ريال
المبلغ النهائي: 120.0 ريال

⚠️ نصيحة: تجنب التداخل العميق

# ❌ صعب القراءة
if a:
    if b:
        if c:
            if d:
                print("...")

# ✅ أفضل — استخدم العوامل المنطقية
if a and b and c and d:
    print("...")

8. التعبيرات الشرطية — سطر واحد

الصيغة المختصرة

القيمة_إذا_تحقق = قيمة1 if الشرط else قيمة2

مثال

age = 20

# الطريقة التقليدية
if age >= 18:
    status = "بالغ"
else:
    status = "قاصر"

print(status)

بالطريقة المختصرة:

age = 20
status = "بالغ" if age >= 18 else "قاصر"
print(status)

النتيجة:

بالغ

متى تستخدمها؟

  • ✅ استخدمها: للشروط البسيطة على سطر واحد
  • ❌ لا تستخدمها: للشروط المعقدة (تقليل القراءة)

9. التحقق من القيم — Truthy و Falsy

مفهوم مهم في Python

في Python، بعض القيم تعتبر False تلقائياً في الشروط:

القيمةTruthy / Falsy
0Falsy (يعني False)
"" (نص فارغ)Falsy
[] (قائمة فارغة)Falsy
NoneFalsy
أي رقم ≠ 0Truthy (يعني True)
أي نص غير فارغTruthy

مثال عملي

name = input("ما اسمك؟ ")

# الطريقة الطويلة
if name != "":
    print(f"مرحباً {name}")

# الطريقة الذكية (Pythonic)
if name:
    print(f"مرحباً {name}")
else:
    print("لم تدخل اسماً!")

10. مشروع عملي — لعبة تخمين الرقم

دعنا نطبق كل ما تعلمناه في مشروع ممتع.

الكود الكامل

# لعبة تخمين الرقم
# يختار الكمبيوتر رقماً، والمستخدم يحاول تخمينه

import random

print("=" * 45)
print("🎮 لعبة تخمين الرقم")
print("=" * 45)
print("فكرت في رقم بين 1 و 100")
print("حاول تخمينه!")
print()

# الكمبيوتر يختار رقماً عشوائياً
secret_number = random.randint(1, 100)

# المستخدم يدخل تخمينه
guess = int(input("ما تخمينك؟ "))

# التحقق من التخمين
if guess == secret_number:
    print(f"🎉 مبروك! الرقم {secret_number} صحيح!")
elif guess < secret_number:
    print(f"⬆️ الرقم السري أكبر من {guess}")
    print(f"الإجابة كانت: {secret_number}")
else:
    print(f"⬇️ الرقم السري أصغر من {guess}")
    print(f"الإجابة كانت: {secret_number}")

عند التشغيل

=============================================
🎮 لعبة تخمين الرقم
=============================================
فكرت في رقم بين 1 و 100
حاول تخمينه!

ما تخمينك؟ 50
⬆️ الرقم السري أكبر من 50
الإجابة كانت: 73

شرح الكود

السطرالشرح
import randomاستيراد مكتبة الأرقام العشوائية
random.randint(1, 100)اختيار رقم عشوائي بين 1 و 100
int(input(...))قراءة رقم من المستخدم وتحويله لعدد صحيح
if guess == secret_number:هل التخمين صحيح؟
elif guess < secret_number:هل التخمين أصغر؟

11. أخطاء شائعة للمبتدئين

الخطأ 1: نسيان النقطتين

# خطأ
if age >= 18
    print("بالغ")

# صحيح
if age >= 18:
    print("بالغ")

الخطأ: SyntaxError: expected ':'

الخطأ 2: استخدام = بدلاً من ==

# خطأ
if age = 18:
    print("عمرك 18")

# صحيح
if age == 18:
    print("عمرك 18")

الخطأ: SyntaxError: invalid syntax

الخطأ 3: إزاحة غير صحيحة

# خطأ
if age >= 18:
print("بالغ")

# صحيح
if age >= 18:
    print("بالغ")

الخطأ: IndentationError

الخطأ 4: مقارنة أنواع مختلفة

# خطأ — سيرفع TypeError
age = "18"   # نص وليس رقم
if age >= 18:
    print("بالغ")

# صحيح
age = 18
if age >= 18:
    print("بالغ")

الخطأ 5: شرط دائماً True

# خطأ — "5" نص وليس رقم
if "5" > 3:    # لا يمكن مقارنة نص برقم (في Python 3)
    ...

12. تمارين عملية

التمرين 1: التحقق من كلمة المرور

اكتب برنامجاً:

  • يطلب كلمة المرور
  • إذا كانت "python2026" → "تم الدخول"
  • إذا كانت مختلفة → "كلمة المرور خاطئة"

التمرين 2: أعلى رقم

اكتب برنامجاً:

  • يطلب 3 أرقام من المستخدم
  • يطبع الأعلى منها

التمرين 3: آلة حاسبة بسيطة

اكتب برنامجاً:

  • يطلب رقمين وعملية (+, -, *, /)
  • يطبع النتيجة
  • يتعامل مع القسمة على صفر

مثال:

الرقم الأول: 10
العملية: /
الرقم الثاني: 0
❌ لا يمكن القسمة على صفر

التمرين 4: التحقق من البريد

اكتب برنامجاً:

  • يطلب بريداً إلكترونياً
  • يتحقق من احتوائه على @ و .
  • يطبع "بريد صحيح" أو "بريد خاطئ"

قائمة تحقق — هل تعلمت؟

المهارةالحالة
استخدام if البسيطة⬜
استخدام else كبديل⬜
استخدام elif لسلسلة شروط⬜
فهم الإزاحة في Python⬜
استخدام عوامل المقارنة (==, >, <...)⬜
استخدام العوامل المنطقية (and, or, not)⬜
الشروط المتداخلة⬜
التعبيرات الشرطية المختصرة⬜
بناء مشروع تخمين الرقم⬜

الخلاصة

في هذا المقال، تعلمت:

  1. جملة if — أساس كل الشروط
  2. الإزاحة — قاعدة Python المقدسة
  3. جملة else — البديل عند عدم التحقق
  4. جملة elif — سلسلة الشروط
  5. عوامل المقارنة — ==, !=, >, <, >=, <=
  6. العوامل المنطقية — and, or, not
  7. الشروط المتداخلة — if داخل if
  8. التعبيرات الشرطية — سطر واحد
  9. Truthy و Falsy — القيم في Python

الشروط هي ما يجعل برنامجك ذكياً — بدونها، سينفذ الأوامر بشكل أعمى.

في المقال القادم: سنتعلم الحلقات (Loops) — كيف تكرر المهام بكفاءة!

جرب التمارين الأربعة قبل الانتقال للمقال التالي. الممارسة هي المفتاح!

هل نجحت في حل التمارين؟ شاركنا في التعليقات!

🐍

🎁 هدية مجانية: ورقة Python المرجعية

احصل على الدليل السريع لأشهر أوامر Python — 8 صفحات PDF مجاناً

📥 حمّل الورقة الآن
📄

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

البرمجة

المتغيرات وأنواع البيانات في Python — الشرح الكامل

دليل شامل للمتغيرات وأنواع البيانات في Python — النصوص، الأرقام، القوائم، القواميس مع أمثلة عملية

البرمجة

بناء تطبيق مهام كامل بلغة Python — مع قاعدة بيانات

دليل عملي لبناء تطبيق إدارة مهام احترافي بلغة Python — مع قاعدة بيانات SQLite وواجهة رسومية Tkinter

البرمجة

بناء آلة حاسبة بلغة Python — مشروع كامل خطوة بخطوة

دليل عملي كامل لبناء آلة حاسبة احترافية بلغة Python — من التخطيط إلى التنفيذ، مع واجهة رسومية بـ Tkinter