شرح درس الجمل الشرطية في البايثون ثاني متوسط الفصل الأول
الجملة الشرطية تجعل البرنامج ينفّذ أوامر معينة فقط إذا تحقق شرط، وتنفّذ else أوامر بديلة إذا لم يتحقق.

أهداف الدرس
- يكتب جملة if بصيغتها الصحيحة مع النقطتين والمسافة البادئة.
- يستخدم if-else لاختيار أحد مسارين في البرنامج.
- يطبّق أمثلة النجاح والرسوب والعدد الزوجي والفردي باستخدام %.
- يكتشف أخطاء المسافة البادئة ويصلحها.
المفهوم الأساسي
الجملة الشرطية تجعل البرنامج ينفّذ أوامر معينة فقط إذا تحقق شرط، وتنفّذ else أوامر بديلة إذا لم يتحقق.
شرح الدرس
في المدرسة تعرف أن من حصل على الدرجة المطلوبة ينجح، ومن لم يحصل عليها يعيد المحاولة. البرنامج يحتاج إلى هذا النوع من التفكير ليتصرف بحسب الحالة، وتفعل ذلك الجمل الشرطية.
جملة if
تتكون جملة if من الكلمة if ثم الشرط ثم نقطتين رأسيتين :، وتأتي بعدها الأوامر التي تُنفّذ عند تحقق الشرط، وتُكتب داخلها بمسافة بادئة قدرها ٤ مسافات.
grade = int(input("أدخل درجتك: "))
if grade >= 50:
print("ناجح")إذا أدخل الطالب ٧٠ طبع البرنامج: ناجح. وإذا أدخل ٤٠ فلا يطبع شيئًا لأن الشرط لم يتحقق.
«الشرط ينتج True أو False، والأوامر المزاحة تُنفّذ عند True فقط»
جملة if-else
نستخدم else لنحدد ما يجري عند عدم تحقق الشرط. ولا يكتب بعد else شرط، بل نقطتان فقط:
grade = int(input("أدخل درجتك: "))
if grade >= 50:
print("ناجح")
else:
print("راسب")
print("انتهى البرنامج")إدخال ٧٠ يطبع: ناجح ثم انتهى البرنامج. وإدخال ٤٠ يطبع: راسب ثم انتهى البرنامج. السطر الأخير غير مزاح، فيُنفّذ في الحالتين.
العدد الزوجي والفردي
العدد الزوجي ينقسم على ٢ بلا باقي. المعامل % يعطينا باقي القسمة، فإذا كان باقي قسمة العدد على ٢ يساوي صفرًا فالعدد زوجي:
n = int(input("أدخل عددًا: "))
if n % 2 == 0:
print("العدد زوجي")
else:
print("العدد فردي")عند إدخال ٧ يطبع: العدد فردي. وعند إدخال ١٢ يطبع: العدد زوجي.
نحوّل الإدخال بـint() قبل المقارنة، لأن input() تعيد نصًّا.
أخطاء المسافة البادئة
بايثون تعتمد على المسافة البادئة لتعرف أي الأوامر تتبع الشرط. إذا نسيتها ظهرت رسالة خطأ مثل IndentationError، وإذا نسيت النقطتين ظهر SyntaxError.
- أوامر الشرط: تُزاح ٤ مسافات إلى اليمين.
- أوامر else: تُزاح بالمقدار نفسه.
- الأمر خارج الشرط: يبدأ من بداية السطر بلا إزاحة.
استخدم المسافات نفسها في كل الأسطر داخل الكتلة الواحدة، ولا تخلط بينها وبين مفتاح Tab.
نشاط تعليمي
التطبيق الأول
اكتب برنامجًا يطلب من المستخدم درجة ثم يطبع «ناجح» إذا كانت الدرجة ٥٠ فأكثر، ويطبع «راسب» في غير ذلك.
نستخدم if grade >= 50: ثم print("ناجح") ثم else: ثم print("راسب").
أن يكتب الطالب جملة if-else صحيحة.
المثال الثاني
ما الذي يطبعه برنامج الزوجي والفردي عند إدخال ٩؟
يطبع «العدد فردي» لأن باقي قسمة ٩ على ٢ يساوي واحدًا.
أن يتتبع الطالب البرنامج بالمعامل %.
الموقف الثالث
كتب طالب if grade >= 50 بلا نقطتين، فما النتيجة؟
يظهر SyntaxError ونضيف النقطتين في آخر السطر.
أن يكتشف الطالب أخطاء الصياغة.
ملاحظات مهمة
- 1بعد الشرط وelse تأتي نقطتان : دائمًا.
- 2المسافة البادئة ٤ مسافات تحدد الأوامر التابعة للشرط.
- 3else لا يحتاج إلى شرط.
- 4% يعطي باقي القسمة.
أخطاء شائعة
- ✗ خطأنسيان النقطتين بعد if أو else.✓ الصواب: نكتب if شرط: وelse: مع النقطتين.
- ✗ خطأعدم إزاحة الأمر تحت الشرط.✓ الصواب: نزيحه ٤ مسافات.
+عرض جميع الأخطاء (3) ←إخفاء الأخطاء الإضافية
- ✗ خطأكتابة if x = 5: للمقارنة.✓ الصواب: نكتب if x == 5:.
ملخص الدرس
- if تنفّذ أوامرها عند تحقق الشرط.
- else تنفّذ أوامرها عند عدم تحقق الشرط.
- العدد زوجي إذا كان n % 2 == 0.
- المسافة البادئة والنقطتان ضروريتان في بايثون.
هل أتقنت الدرس؟اختبر نفسك من خلال اختبار قصير من عدة أسئلة.