تخطَّ إلى المحتوى

العمليات الحسابية والمقارنة والمنطقية في Python

الدرس 6 من 25 · Python

البرامج تحسب وتقارن طوال الوقت: كم سعر السلة؟ هل الدرجة كافية للنجاح؟ هل المستخدم كبير بما يكفي ومعه تذكرة؟ في هذا الدرس ستتعلم ثلاثة أنواع من العمليات في Python: الحسابية والمقارنة والمنطقية. وهي الأدوات التي ستبني بها كل القرارات في برامجك.

العملية الرمز مثال الناتج
الجمع + 17 + 5 22
الطرح - 17 - 5 12
الضرب * 17 * 5 85
القسمة / 17 / 5 3.4
القسمة الصحيحة // 17 // 5 3
باقي القسمة % 17 % 5 2
الأس ** 17 ** 2 289
a = 17
b = 5
print(a + b)
print(a - b)
print(a * b)
print(a / b)
print(a // b)
print(a % b)
print(a ** 2)
الناتج
22
12
85
3.4
3
2
289

القسمة العادية والقسمة الصحيحة

Section titled “القسمة العادية والقسمة الصحيحة”

القسمة العادية / تعطي دائماً عدداً عشرياً، حتى لو كانت القسمة بدون باقٍ:

print(10 / 2)
الناتج
5.0

أما // فتعطي الجزء الصحيح فقط من القسمة، و % تعطي الباقي. تخيّل أن معك 17 قطعة حلوى ستوزعها على 5 أطفال بالتساوي: كل طفل يأخذ 17 // 5 = 3 قطع، ويتبقى معك 17 % 5 = 2.

مثل الرياضيات: الأس أولاً، ثم الضرب والقسمة، ثم الجمع والطرح. والأقواس تغيّر الترتيب:

print(2 + 3 * 4)
print((2 + 3) * 4)
الناتج
14
20

لتعديل قيمة متغير بالاعتماد على قيمته الحالية، استخدم الاختصارات:

score = 0
score += 10 # مثل score = score + 10
score -= 3 # مثل score = score - 3
score *= 2 # مثل score = score * 2
print(score)
الناتج
14

المقارنة تسأل سؤالاً، والإجابة دائماً True أو False:

العملية الرمز
يساوي ==
لا يساوي !=
أكبر من >
أصغر من <
أكبر من أو يساوي >=
أصغر من أو يساوي <=
print(7 > 3, 7 < 3, 7 >= 7, 7 <= 6)
print(5 == 5, 5 != 5)
print(5 == "5")
الناتج
True False True False
True False
False

لاحظ السطر الأخير: الرقم 5 والنص "5" غير متساويين في Python، لأنهما من نوعين مختلفين.

أحياناً يعتمد القرار على أكثر من شرط. هنا نستخدم ثلاث كلمات إنجليزية بسيطة:

  • and (و): النتيجة True إذا كان الشرطان صحيحين.
  • or (أو): النتيجة True إذا كان أحدهما على الأقل صحيحاً.
  • not (ليس): تعكس القيمة.
age = 15
has_ticket = True
print(age >= 12 and has_ticket)
print(age < 12 or age > 60)
print(not has_ticket)
الناتج
True
False
False
  • للدخول إلى السينما تحتاج عمراً مناسباً و تذكرة: الشرطان متحققان.
  • الخصم لمن هو أصغر من 12 أو أكبر من 60: لا هذا ولا ذاك.
  • not True تصبح False.

لاحظ كيف تُقرأ Python كأنها جملة إنجليزية: age >= 12 and has_ticket. هذا من أسباب حب المبتدئين لها.

لنكتب برنامجاً صغيراً يقرر هل يحصل الطالب على شهادة تقدير، بشرط أن يكون متوسط درجاته 85 فأكثر و لم يغب أكثر من 3 أيام:

math = 90
science = 84
absences = 2
average = (math + science) / 2
print("المتوسط:", average)
print("يستحق التقدير؟", average >= 85 and absences <= 3)
الناتج
المتوسط: 87.0
يستحق التقدير؟ True

لاحظ كيف استخدمنا الأقواس لنجمع الدرجتين قبل القسمة، ثم استخدمنا المقارنة والعملية المنطقية and معاً في سطر واحد.

print(0.1 + 0.2)
الناتج
0.30000000000000004

هذا ليس خطأ في Python، بل في طريقة تخزين الأرقام العشرية في كل أجهزة الكمبيوتر. لا تقلق منه الآن، فقط اعرف أنه موجود.

اكتب برنامجاً يسأل المستخدم عن عدد دقائق، ثم يحوّلها إلى ساعات ودقائق باستخدام // و %. مثال على التشغيل:

الناتج
كم دقيقة؟ 135
135 دقيقة = 2 ساعة و 15 دقيقة

تحدٍّ إضافي: اطبع أيضاً هل عدد الدقائق زوجي (True أو False).

  • توقع رقم صحيح من /: 10 / 2 تعطي 5.0. إذا أردت عدداً صحيحاً استخدم //.
  • استخدام = للمقارنة: المقارنة بـ ==.
  • كتابة && و ||: في Python نكتب الكلمات and و or و not، وليس الرموز المستخدمة في لغات أخرى.

سؤال

ما ناتج 20 // 6؟

سؤال

ما قيمة True and False؟

  • العمليات الحسابية: + و - و * و / و // (القسمة الصحيحة) و % (الباقي) و ** (الأس).
  • / تعطي عدداً عشرياً دائماً، و // تعطي الجزء الصحيح.
  • الاختصارات += و -= و *= تعدّل المتغير، ولا يوجد ++ في Python.
  • المقارنات == و != و > و < و >= و <= تعطي True أو False.
  • and و or و not تجمع الشروط وتعكسها.