شرح جمل الشرط في بايثون

التحكم المنطقي: شرح الجمل الشرطية (If...Else) في بايثون للمبتدئين

🧠 ما هي الجمل الشرطية (Conditional Statements)؟

تُعد الجمل الشرطية بمثابة العقل المدبر والركيزة الأساسية لاتخاذ القرارات بداخل الأكواد البرمجية. بدون الشروط، يتحرك البرنامج في مسار خطي أعمى ينفذ الأسطر بترتيب جامد؛ ولكن بمجرد دمج أدوات التحكم الشرطية، تمنح سكريبتاتك وعياً سياقياً قادراً على تصفح الخيارات، فحص المعطيات، واتخاذ قرار مخصص ومستقل تماماً بناءً على تحقق الشرط أو عدمه.

هذا التوجيه الذكي والمنطقي هو الأساس الفعلي الذي تُبنى عليه أنظمة تسجيل الدخول، بيئات الألعاب تفاعلياً، محركات البحث، وتطبيقات الذكاء الاصطناعي الفائقة.

📊 أدوات ومعاملات المقارنة المنطقية بداخل الشروط

لصياغة شرط برمجي متكامل يفهمه معالج الحاسوب، نعتمد على معاملات المقارنة (Comparison Operators) للموازنة بين قيمتين أو متغيرين، ويلخص الجدول المطور أدناه كافة المعاملات البرمجية القياسية الحاكمة:

المعامل البرمجي المعنى والوظيفة الرياضية مثال تطبيقي (Condition) الحالة المخزنة (Boolean Output)
== يساوي تماماً (التحقق من التطابق) x == 10 True إذا كانت قيمة x تساوي 10
!= لا يساوي (التحقق من الاختلاف) x != 5 True إذا كانت قيمة x أي رقم عدا 5
> أكبر من صراحة age > 18 True إذا كان العمر يتجاوز 18 عاماً
< أصغر من صراحة temp < 30 True إذا كانت الحرارة تحت الـ 30
>= أكبر من أو يساوي القيمة score >= 50 True إذا كانت الدرجة 50 فما فوق (نجاح)
<= أصغر من أو يساوي القيمة price <= 100 True إذا كان السعر مئة أو أقل

🛠️ المخطط الانسيابي الحركي لتتبع اتخاذ القرار الشرطي

لتصور كيف يعالج مفسر بايثون الكود الشرطي خلف الكواليس، ألقِ نظرة على البنية التخطيطية لحركة البيانات بداخل الذاكرة:

1. البنية الأساسية لجملة الشرط المنفرد (if Statement)

تُستخدم عبارة if صراحة عندما تود توجيه البرنامج لتنفيذ كتلة معينة من الأكواد **فقط وفقط إذا كان الشرط صحيحاً (True)**؛ وإذا تبين أن الشرط خاطئ (False)، يتجاهل البرنامج الأسطر تماماً وينتقل للأسطر التالية خارج نطاق الشرط.

⚙️ الصيغة القياسية للهيكل الهندسي للشرط:

if الشرط_المنطقي:
    الأمر_البرمجي_المستهدف_عند_التحقق

💻 مثال تطبيقي أول: فحص درجات الحرارة

temperature = 35

if temperature > 30:
    print("الطقس حار سينمائياً!")

🖥️ المخرجات الحية:

الطقس حار سينمائياً!

توضيح التدفق: قمنا بحفظ القيمة 35 في عداد الحرارة، فحص البرنامج ما إذا كانت 35 أكبر من 30، وبما أن النتيجة المنطقية هي True، نفذ أمر الطباعة الداخلي بوقار.

⚠️ حظر الانهيار البرمجي: أهمية قواعد الإزاحة (Indentation) في بايثون

على عكس لغات البرمجة الأخرى التي تعتمد على الأقواس المتموجة {} لعزل الأكواد، تعتمد بايثون على المسافات البادئة أو الإزاحة (Indentation) لتحديد هيكل ونطاق التبعية؛ فالأسطر المزاحة للداخل بمقدار 4 مسافات (أو ضغطة زر Tab) يفهمها محرك بايثون تلقائياً على أنها الكتلة التنفيذية التابعة والواقعة بداخل حماية جملة الـ if الخارجي.

❌ خطأ فادح يقع فيه المبتدئون (نسيان الإزاحة):

if age > 18:
print("مرحباً") # ❌ سيفشل السكريبت فوراً ويعطي خطأ IndentationError

✅ الصياغة الهندسية الصحيحة والمطهرة:

if age > 18:
    print("مرحباً") # ✔️ ممتاز! السطر معزول ومزاح للداخل بدقة

2. معمارية المسار البديل والشامل (If...Else Statement)

ماذا لو رغبنا في صياغة كود ذكي يمتلك مسارين مخصصين بالتناوب؟ هنا تتدخل العبارة السحرية else لتغطية الاحتمال البديل. المعادلة البسيطة: إذا تحقق الشرط الأول نفذ الأمر الأول، وإذا فشل ولم يتحقق، انتقل فوراً وبشكل آلي لتنفيذ الأمر البديل الواقع تحت وسم الـ else.

💻 مثال عملي أول: التحقق من الصلاحية والعمر

age = 15

if age >= 18:
    print("تم تأمين المسار: يمكنك الدخول بسلاسة.")
else:
    print("عذراً، أنت دون السن القانونية المسموحة.")

🖥️ المخرجات الحية:

عذراً، أنت دون السن القانونية المسموحة.

3. دمج دالة الاستقبال input() مع الشروط لبناء برمجيات حوارية حية

دعنا نرفع من مستوى المنطق البرمجي ونقوم بدمج دالة استقبال المدخلات الحية input() التي طهرناها سابقاً، لنصنع سكريبتات ديناميكية تتفاعل لحظياً مع هوية الزائر المعرفية:

💻 تطبيق نظام تسجيل الدخول وحماية كلمات المرور:

# استقبال كلمة المرور من لوحة مفاتيح المستخدم يدوياً
password = input("الرجاء إدخال رمز الحماية السري: ")

# فحص المطابقة والتحقق البنيوي
if password == "1234":
    print("تم التحقق بنجاح.. أهلاً بك بداخل المصفوفة!")
else:
    print("خطأ أمني فادح: رمز الحماية الذي كتبته خاطئ.")

🚀 مشروع المبتدئين الصغير: اختبار التفاعل الإيجابي مع البرمجة

answer = input("هل تحب هندسة الأكواد والذكاء الاصطناعي؟ (نعم / لا): ")

if answer == "نعم":
    print("رائع ومذهل جداً! استمر في الإبداع وتطهير الأكواد معنا.")
else:
    print("لا بأس على الإطلاق، نثق تماماً أنك ستحب هذا الفضاء الملهم لاحقاً.")

⚠️ العثرات البرمجية الثلاث الأكثر شيوعاً عند صياغة الشروط

  • نسيان النقطتين الراسيتين (Colon): إهمال وضع علامة النقطتين : في نهاية سطر الـ if أو سطر الـ else، وهو ما يمنع رندرة وتفسير الكود كلياً.
  • الخلط بين عامل التعيين وعامل المطابقة: استخدام يساوي مفردة = بداخل الشرط (وهي مخصصة لحقن وحفظ القيم بداخل الصناديق) بدلاً من استخدام يساوي المزدوجة القياسية == والمخصصة للمقارنة والتحقق من التطابق.
  • تجاهل حساسية الحروف في النصوص: مقارنة النصوص تتطلب تطابقاً حرفياً؛ فإذا أدخل المستخدم الاسم "أحمد" وكان الشرط يفحص "احمد" (بدون همزة)، سيفشل الشرط ويعتبر النتيجة False بسبب اختلاف التكوين النصي.

🔥 مساحة التطبيق الفوري والإنتاج الحي: قمنا بتجهيز وتهيئة كافة الأكواد الحوارية والشرطية لهذا الدرس بداخل محرر ومجمع بايثون تفاعلي مباشر؛ لتقوم بتجربتها، تعديل قيم الشروط يدوياً، واختبار آلية اتخاذ القرار فوراً: انقر هنا وافتح المحرر التفاعلي لدرس الجمل الشرطية ←