المقارنة والشرط: if و else
نجعل البرنامج يقرّر: ينفّذ أمرًا إذا تحقق شرط، وأمرًا آخر إذا لم يتحقق. ⏱ نحو 15 دقيقة.
- تقارن بين قيمتين بالرموز
==و!=و > و < و>=و<=. - تكتب شرطًا بـ
ifينفّذ أسطرًا عند تحققه. - تستخدم المسافة البادئة لتحديد ما داخل الشرط.
- تضيف
elseللحالة الأخرى.
١المقارنة تعطي صح أو خطأ
نقارن كل يوم: هل الدرجة أكبر من 60؟ هل الوقت بعد الثامنة؟ وفي بايثون تعطي المقارنة واحدًا من جوابين: True (صح) أو False (خطأ).
| الرمز | معناه | مثال | الناتج |
|---|---|---|---|
== | يساوي | 5 == 5 | True |
!= | لا يساوي | 5 != 3 | True |
> | أكبر من | 3 > 5 | False |
< | أصغر من | 3 < 5 | True |
>= | أكبر من أو يساوي | 5 >= 5 | True |
<= | أصغر من أو يساوي | 6 <= 5 | False |
age = 17print(age >= 18)print(age == 17)
٢الشرط if
«إذا كانت السماء تمطر فخذ المظلة». الأمر if ينفّذ الأسطر التي تحته فقط إذا كان الشرط صحيحًا:
mark = 75if mark >= 60: print("ناجح")print("انتهى البرنامج")
لاحظ أمرين: النقطتين : في آخر سطر الشرط، والمسافة في بداية السطر الذي تحته.
٣المسافة البادئة
الأسطر التي تتبع الشرط تُكتب بعد أربع مسافات (أو زر Tab). هذه المسافة تخبر بايثون أن السطر «داخل» الشرط. والسطر الذي يعود إلى البداية خارج الشرط، فيُنفَّذ دائمًا:
mark = 40if mark >= 60: print("ناجح") print("مبروك!")print("انتهى البرنامج")
وإذا نسيت المسافة يظهر خطأ:
mark = 75if mark >= 60:print("ناجح")
٤وإلا: else
«إذا كانت الدرجة 60 أو أكثر فاطبع ناجح، وإلا فاطبع راسب». الأمر else يُنفَّذ عندما يكون الشرط خطأ:
mark = int(input("الدرجة: "))if mark >= 60: print("ناجح")else: print("راسب")
📎 للاستزادة (اختياري): المقارنة بين النصوص
نقارن النصوص بـ == أيضًا، والمقارنة دقيقة حرفًا بحرف:
name = "سارة"if name == "سارة": print("أهلًا سارة")
توقّع وتحقّق
ماذا يطبع print(10 > 7)؟
أي رمز يعني «يساوي» في المقارنة؟
== للمقارنة.متى يُنفَّذ ما تحت else؟
else للحالة الأخرى.x = 5. ماذا يطبع البرنامج إذا كان فيه if x > 8: ثم print("كبير") داخل الشرط، ثم print("تم") خارجه؟
الخلاصة
- المقارنة تعطي
TrueأوFalse. ==للمقارنة، و = لوضع القيمة في المتغيّر.ifشرط: ثم أسطر بمسافة بادئة تُنفَّذ إذا تحقق الشرط.else: تُنفَّذ أسطرها إذا لم يتحقق الشرط.- النقطتان : والمسافة البادئة ضروريتان.
تحدٍّ برمجي: زوجي أم فردي
سهلاكتب برنامجًا يقرأ عددًا من المستخدم، ويطبع «زوجي» أو «فردي».
- اقرأ العدد بـ
int(input(...)). - العدد زوجي إذا كان باقي قسمته على 2 يساوي 0.
- استخدم if و else.
ابدأ من هذا الكود، واضغط ▶ شغّل هنا لتكتب حلّك وتجرّبه مباشرة:
n = int(input("أدخل عددًا: "))💡 تلميح 1
n % 2 == 0💡 تلميح 2
حاول بنفسك أولًا؛ للمسألة أكثر من حلّ صحيح.
n = int(input("أدخل عددًا: "))if n % 2 == 0: print("زوجي")else: print("فردي")