طَبِّقْهاتعلّم المبدأ، وطبّقه بيدكمقرر 111 · أساسيات برمجة الحاسب
الدرس 8 · الوحدة 3: القرار والتكرار

المقارنة والشرط: if و else

نجعل البرنامج يقرّر: ينفّذ أمرًا إذا تحقق شرط، وأمرًا آخر إذا لم يتحقق. ⏱ نحو 15 دقيقة.

mark >= 60ناجحراسبنعملا
بعد هذا الدرس ستستطيع أن:
  • تقارن بين قيمتين بالرموز == و != و > و < و >= و <=.
  • تكتب شرطًا بـ if ينفّذ أسطرًا عند تحققه.
  • تستخدم المسافة البادئة لتحديد ما داخل الشرط.
  • تضيف else للحالة الأخرى.

١المقارنة تعطي صح أو خطأ

نقارن كل يوم: هل الدرجة أكبر من 60؟ هل الوقت بعد الثامنة؟ وفي بايثون تعطي المقارنة واحدًا من جوابين: True (صح) أو False (خطأ).

الرمزمعناهمثالالناتج
==يساوي5 == 5True
!=لا يساوي5 != 3True
>أكبر من3 > 5False
<أصغر من3 < 5True
>=أكبر من أو يساوي5 >= 5True
<=أصغر من أو يساوي6 <= 5False
main.py
age = 17print(age >= 18)print(age == 17)
Shell×
>>> %Run main.py
False
True
>>>

٢الشرط if

«إذا كانت السماء تمطر فخذ المظلة». الأمر if ينفّذ الأسطر التي تحته فقط إذا كان الشرط صحيحًا:

main.py
mark = 75if mark >= 60:    print("ناجح")print("انتهى البرنامج")
Shell×
>>> %Run main.py
ناجح
انتهى البرنامج
>>>

لاحظ أمرين: النقطتين : في آخر سطر الشرط، والمسافة في بداية السطر الذي تحته.

٣المسافة البادئة

الأسطر التي تتبع الشرط تُكتب بعد أربع مسافات (أو زر Tab). هذه المسافة تخبر بايثون أن السطر «داخل» الشرط. والسطر الذي يعود إلى البداية خارج الشرط، فيُنفَّذ دائمًا:

main.py
mark = 40if mark >= 60:    print("ناجح")    print("مبروك!")print("انتهى البرنامج")
Shell×
>>> %Run main.py
انتهى البرنامج
>>>

وإذا نسيت المسافة يظهر خطأ:

main.py
mark = 75if mark >= 60:print("ناجح")
Shell×
>>> %Run main.py
File "main.py", line 3
print("ناجح")
^^^^^
IndentationError: expected an indented block after 'if' statement on line 2
>>>

٤وإلا: else

«إذا كانت الدرجة 60 أو أكثر فاطبع ناجح، وإلا فاطبع راسب». الأمر else يُنفَّذ عندما يكون الشرط خطأ:

ابدأاقرأ ⁦mark⁩mark >= 60نعماطبع «ناجح»لااطبع «راسب»توقف
مخطط ناجح أو راسب
main.py
mark = int(input("الدرجة: "))if mark >= 60:    print("ناجح")else:    print("راسب")
Shell×
>>> %Run main.py
الدرجة: 45
راسب
>>>
📎 للاستزادة (اختياري): المقارنة بين النصوص

نقارن النصوص بـ == أيضًا، والمقارنة دقيقة حرفًا بحرف:

main.py
name = "سارة"if name == "سارة":    print("أهلًا سارة")
Shell×
>>> %Run main.py
أهلًا سارة
>>>

توقّع وتحقّق

ماذا يطبع print(10 > 7)؟

10 أكبر من 7.

أي رمز يعني «يساوي» في المقارنة؟

= للإسناد، و == للمقارنة.

متى يُنفَّذ ما تحت else؟

else للحالة الأخرى.

x = 5. ماذا يطبع البرنامج إذا كان فيه if x > 8: ثم print("كبير") داخل الشرط، ثم print("تم") خارجه؟

الشرط خطأ، فيُطبع ما خارجه فقط.

الخلاصة

تحدٍّ برمجي: زوجي أم فردي

سهل

اكتب برنامجًا يقرأ عددًا من المستخدم، ويطبع «زوجي» أو «فردي».

المطلوب:
  • اقرأ العدد بـ int(input(...)).
  • العدد زوجي إذا كان باقي قسمته على 2 يساوي 0.
  • استخدم if و else.

ابدأ من هذا الكود، واضغط ▶ شغّل هنا لتكتب حلّك وتجرّبه مباشرة:

main.py
n = int(input("أدخل عددًا: "))
المطلوب×
أدخل عددًا: 7
فردي
💡 تلميح 1
الشرط: n % 2 == 0
💡 تلميح 2
لا تنس النقطتين والمسافة البادئة.

حاول بنفسك أولًا؛ للمسألة أكثر من حلّ صحيح.

main.py
n = int(input("أدخل عددًا: "))if n % 2 == 0:    print("زوجي")else:    print("فردي")
انتقل إلى تقييم الدرساختيار من متعدد، وصح وخطأ، وأكمل الفراغ، وتتبّع الناتج.ابدأ التقييم ←