معاملات المقارنة (Comparison Operators)
عكس معامل المساواة == هو معامل عدم المساواة !=. وإذا نظرت إليه قليلًا فستجده يشبه الرمز ≠. تكون نتيجة التعبير True عندما تكون القيمتان... غير متساويتين. جرّب 1 != 2 بنفسك في الطرفية.
إليك برنامجًا صغيرًا لطيفًا يستخدم !=:
sentence = 'The e key on my keyboard is broken'
new_sentence = ''
for c in sentence:
if c != 'e':
new_sentence += c
print(new_sentence)
من المعاملات المفيدة أيضًا < بمعنى «أصغر من» و> بمعنى «أكبر من». مثلًا، a < b تعني أن a أصغر من b. جرّب استخدام أحد هذين المعاملين في الطرفية لمقارنة عددين.
لا تحتاج إلا إلى تشغيل سطر صغير وبسيط جدًا في الطرفية.
كيف تجمع عددين في الطرفية؟
جرّب مثلًا
123 + 456.في هذا التمرين ستفعل الشيء نفسه تقريبًا، لكن بالمقارنة بدل الجمع.
يمكنك استخدام هذه المعاملات لمقارنة النصوص أيضًا. إذا رتبت نصين ترتيبًا أبجديًا، فالنص الذي يأتي أولًا يُعد «أصغر من» النص الذي يأتي بعده. جرّب ذلك بنفسك.
هذا يكاد يطابق الخطوة السابقة؛ استخدم نصوصًا بدل الأعداد.
لا تحتاج إلا إلى تشغيل سطر صغير وبسيط جدًا في الطرفية.
يمكنك فعل ذلك بعدة أسطر، بتعريف متغيرات ثم مقارنتها، لكنك لا تحتاج إليها؛ يمكن الحل من دون متغيرات.
هل تتذكر جمع نصين في الطرفية في بداية الكورس؟
مثلًا استخدمنا
'hello' + 'world'.في هذا التمرين ستفعل الشيء نفسه تقريبًا، لكن بالمقارنة بدل الجمع.
إليك مثالًا عمليًا على استخدام <؛ جرّبه:
percentage = 73
if percentage < 40:
grade = 'F'
elif percentage < 60:
grade = 'C'
elif percentage < 80:
grade = 'B'
else:
grade = 'A'
print(grade)
تذكر أن elif percentage < 60 بعد if percentage < 40 تعني: «إذا لم تكن النسبة أقل من 40، وكانت أقل من 60». ولذلك ينجح هذا الفرع مع كل الأعداد من 40 إلى 59 شاملًا. وبالطريقة نفسها تكون الدرجة 'B' للنسب من 60 إلى 79، وتكون 'A' لأي نسبة تبدأ من 80 فما فوق.
والآن تمرين: اكتب برنامجًا يستقبل ثلاثة متغيرات x1 وx2 وx3، ثم يطبع قيمة أصغرها. فإذا كانت القيم:
x1 = 30
x2 = 10
x3 = 20
فيجب أن يطبع البرنامج 10.
جرّب كتابة برنامج يطبع الأصغر بين
x1وx2فقط.كل ما تحتاجه عدة استخدامات لـ
<وifوربماelse.
رائع!
يمكن حل المسألة بعدة طرق. أحد الحلول:
if x1 < x2:
if x1 < x3:
first = x1
else:
first = x3
else:
if x2 < x3:
first = x2
else:
first = x3
print(first)
وحل آخر:
first = x1
if x2 < first:
first = x2
if x3 < first:
first = x3
print(first)
تعمل هذه البرامج، وكذلك حلك، مع الأعداد والنصوص. فإذا كانت القيم:
x1 = 'Charlie'
x2 = 'Alice'
x3 = 'Bob'
فستطبع Alice لأنها تسبق القيم الأخرى أبجديًا.
يعطي العاملان < و> القيمة False عندما تكون القيمتان متساويتين. فالعدد 3 ليس أصغر من 3 ولا أكبر منه، ولذلك 3 < 3 و3 > 3 كلاهما False. للسماح بالمساواة نستخدم <= و>=. لاحظ أن علامة = تأتي ثانيًا؛ فلا يوجد عاملان باسم =< أو =>. ويمكن تذكرهما بقراءتهما «أصغر من أو يساوي» و«أكبر من أو يساوي».
إذًا أهم معاملات المقارنة هي == و!= و< و> و<= و>=. وإذا شككت في سلوك أي واحد منها، جرّبه مباشرة في الطرفية.