الشروط في 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→ المتغير يساوي 20if 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:
# الكود الافتراضي
ترتيب التنفيذ:
- Python يفحص الشرط الأول
- إذا تحقق → ينفذ الكود ويتجاهل الباقي
- إذا لم يتحقق → يفحص الشرط الثاني
- وهكذا...
- إذا لم يتحقق أي شرط → ينفذ
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 == 5 | True |
!= | لا يساوي | 5 != 3 | True |
> | أكبر من | 5 > 3 | True |
< | أصغر من | 3 < 5 | True |
>= | أكبر من أو يساوي | 5 >= 5 | True |
<= | أصغر من أو يساوي | 3 <= 5 | True |
⚠️ تحذير: = مقابل ==
أشهر خطأ للمبتدئين:
# خطأ — هذا إسناد وليس مقارنة
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):
| A | B | A and B | A or B | not A |
|---|---|---|---|---|
| True | True | True | True | False |
| True | False | False | True | False |
| False | True | False | True | True |
| False | False | False | False | True |
مثال شامل — نظام تسجيل دخول
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 |
|---|---|
0 | Falsy (يعني False) |
"" (نص فارغ) | Falsy |
[] (قائمة فارغة) | Falsy |
None | Falsy |
| أي رقم ≠ 0 | Truthy (يعني 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) | ⬜ |
| الشروط المتداخلة | ⬜ |
| التعبيرات الشرطية المختصرة | ⬜ |
| بناء مشروع تخمين الرقم | ⬜ |
الخلاصة
في هذا المقال، تعلمت:
- جملة
if— أساس كل الشروط - الإزاحة — قاعدة Python المقدسة
- جملة
else— البديل عند عدم التحقق - جملة
elif— سلسلة الشروط - عوامل المقارنة —
==,!=,>,<,>=,<= - العوامل المنطقية —
and,or,not - الشروط المتداخلة —
ifداخلif - التعبيرات الشرطية — سطر واحد
- Truthy و Falsy — القيم في Python
الشروط هي ما يجعل برنامجك ذكياً — بدونها، سينفذ الأوامر بشكل أعمى.
في المقال القادم: سنتعلم الحلقات (Loops) — كيف تكرر المهام بكفاءة!
جرب التمارين الأربعة قبل الانتقال للمقال التالي. الممارسة هي المفتاح!
هل نجحت في حل التمارين؟ شاركنا في التعليقات!
🎁 هدية مجانية: ورقة Python المرجعية
احصل على الدليل السريع لأشهر أوامر Python — 8 صفحات PDF مجاناً
📥 حمّل الورقة الآنالمتغيرات وأنواع البيانات في Python — الشرح الكامل
الحلقات في Python — كرر المهام بذكاء
📚 مقالات ذات صلة
المتغيرات وأنواع البيانات في Python — الشرح الكامل
دليل شامل للمتغيرات وأنواع البيانات في Python — النصوص، الأرقام، القوائم، القواميس مع أمثلة عملية
بناء تطبيق مهام كامل بلغة Python — مع قاعدة بيانات
دليل عملي لبناء تطبيق إدارة مهام احترافي بلغة Python — مع قاعدة بيانات SQLite وواجهة رسومية Tkinter
بناء آلة حاسبة بلغة Python — مشروع كامل خطوة بخطوة
دليل عملي كامل لبناء آلة حاسبة احترافية بلغة Python — من التخطيط إلى التنفيذ، مع واجهة رسومية بـ Tkinter