البرمجة📅 2026-09-2211 دقائق قراءة
الشروط في Python — كيف تجعل برنامجك يتخذ قرارات؟

الشروط في 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: يعكس القيمة (TrueFalse والعكس).

جدول الحقيقة (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 — كرر المهام بذكاء

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

أول برنامج لك بلغة Python — Hello World وأكثر
البرمجة

أول برنامج لك بلغة Python — Hello World وأكثر

دليل عملي لكتابة أول برنامج Python — تعلم print و input والمتغيرات والتعليقات مع أمثلة تفاعلية خطوة بخطوة

كيف تثبت Python على ويندوز وماك — دليل خطوة بخطوة 2026
البرمجة

كيف تثبت Python على ويندوز وماك — دليل خطوة بخطوة 2026

دليل عملي مفصل لتثبيت Python على ويندوز وماك خطوة بخطوة — مع حل المشاكل الشائعة وإعداد بيئة العمل الاحترافية