العمليات الحسابية والمقارنة والمنطقية في Python
البرامج تحسب وتقارن طوال الوقت: كم سعر السلة؟ هل الدرجة كافية للنجاح؟ هل المستخدم كبير بما يكفي ومعه تذكرة؟ في هذا الدرس ستتعلم ثلاثة أنواع من العمليات في Python: الحسابية والمقارنة والمنطقية. وهي الأدوات التي ستبني بها كل القرارات في برامجك.
العمليات الحسابية
Section titled “العمليات الحسابية”| العملية | الرمز | مثال | الناتج |
|---|---|---|---|
| الجمع | + |
17 + 5 |
22 |
| الطرح | - |
17 - 5 |
12 |
| الضرب | * |
17 * 5 |
85 |
| القسمة | / |
17 / 5 |
3.4 |
| القسمة الصحيحة | // |
17 // 5 |
3 |
| باقي القسمة | % |
17 % 5 |
2 |
| الأس | ** |
17 ** 2 |
289 |
a = 17b = 5print(a + b)print(a - b)print(a * b)print(a / b)print(a // b)print(a % b)print(a ** 2)2212853.432289القسمة العادية والقسمة الصحيحة
Section titled “القسمة العادية والقسمة الصحيحة”القسمة العادية / تعطي دائماً عدداً عشرياً، حتى لو كانت القسمة بدون باقٍ:
print(10 / 2)5.0أما // فتعطي الجزء الصحيح فقط من القسمة، و % تعطي الباقي. تخيّل أن معك 17 قطعة حلوى ستوزعها على 5 أطفال بالتساوي: كل طفل يأخذ 17 // 5 = 3 قطع، ويتبقى معك 17 % 5 = 2.
ترتيب العمليات
Section titled “ترتيب العمليات”مثل الرياضيات: الأس أولاً، ثم الضرب والقسمة، ثم الجمع والطرح. والأقواس تغيّر الترتيب:
print(2 + 3 * 4)print((2 + 3) * 4)1420اختصارات التعديل
Section titled “اختصارات التعديل”لتعديل قيمة متغير بالاعتماد على قيمته الحالية، استخدم الاختصارات:
score = 0score += 10 # مثل score = score + 10score -= 3 # مثل score = score - 3score *= 2 # مثل score = score * 2print(score)14عمليات المقارنة
Section titled “عمليات المقارنة”المقارنة تسأل سؤالاً، والإجابة دائماً True أو False:
| العملية | الرمز |
|---|---|
| يساوي | == |
| لا يساوي | != |
| أكبر من | > |
| أصغر من | < |
| أكبر من أو يساوي | >= |
| أصغر من أو يساوي | <= |
print(7 > 3, 7 < 3, 7 >= 7, 7 <= 6)print(5 == 5, 5 != 5)print(5 == "5")True False True FalseTrue FalseFalseلاحظ السطر الأخير: الرقم 5 والنص "5" غير متساويين في Python، لأنهما من نوعين مختلفين.
العمليات المنطقية
Section titled “العمليات المنطقية”أحياناً يعتمد القرار على أكثر من شرط. هنا نستخدم ثلاث كلمات إنجليزية بسيطة:
and(و): النتيجةTrueإذا كان الشرطان صحيحين.or(أو): النتيجةTrueإذا كان أحدهما على الأقل صحيحاً.not(ليس): تعكس القيمة.
age = 15has_ticket = True
print(age >= 12 and has_ticket)print(age < 12 or age > 60)print(not has_ticket)TrueFalseFalse- للدخول إلى السينما تحتاج عمراً مناسباً و تذكرة: الشرطان متحققان.
- الخصم لمن هو أصغر من 12 أو أكبر من 60: لا هذا ولا ذاك.
not TrueتصبحFalse.
لاحظ كيف تُقرأ Python كأنها جملة إنجليزية: age >= 12 and has_ticket. هذا من أسباب حب المبتدئين لها.
مثال يجمع كل شيء
Section titled “مثال يجمع كل شيء”لنكتب برنامجاً صغيراً يقرر هل يحصل الطالب على شهادة تقدير، بشرط أن يكون متوسط درجاته 85 فأكثر و لم يغب أكثر من 3 أيام:
math = 90science = 84absences = 2
average = (math + science) / 2print("المتوسط:", average)print("يستحق التقدير؟", average >= 85 and absences <= 3)المتوسط: 87.0يستحق التقدير؟ Trueلاحظ كيف استخدمنا الأقواس لنجمع الدرجتين قبل القسمة، ثم استخدمنا المقارنة والعملية المنطقية and معاً في سطر واحد.
معلومة غريبة
Section titled “معلومة غريبة”print(0.1 + 0.2)0.30000000000000004هذا ليس خطأ في Python، بل في طريقة تخزين الأرقام العشرية في كل أجهزة الكمبيوتر. لا تقلق منه الآن، فقط اعرف أنه موجود.
جرّب بنفسك
Section titled “جرّب بنفسك”اكتب برنامجاً يسأل المستخدم عن عدد دقائق، ثم يحوّلها إلى ساعات ودقائق باستخدام // و %. مثال على التشغيل:
كم دقيقة؟ 135135 دقيقة = 2 ساعة و 15 دقيقةتحدٍّ إضافي: اطبع أيضاً هل عدد الدقائق زوجي (True أو False).
أخطاء شائعة
Section titled “أخطاء شائعة”- توقع رقم صحيح من /:
10 / 2تعطي5.0. إذا أردت عدداً صحيحاً استخدم//. - استخدام = للمقارنة: المقارنة بـ
==. - كتابة && و ||: في Python نكتب الكلمات
andوorوnot، وليس الرموز المستخدمة في لغات أخرى.
اختبر نفسك
Section titled “اختبر نفسك”سؤال
ما ناتج 20 // 6؟
القسمة الصحيحة // تعطي الجزء الصحيح فقط: 20 ÷ 6 = 3 والباقي 2.
سؤال
ما قيمة True and False؟
and تحتاج أن يكون الطرفان صحيحين، وهنا أحدهما خاطئ.
الخلاصة
Section titled “الخلاصة”- العمليات الحسابية:
+و-و*و/و//(القسمة الصحيحة) و%(الباقي) و**(الأس). /تعطي عدداً عشرياً دائماً، و//تعطي الجزء الصحيح.- الاختصارات
+=و-=و*=تعدّل المتغير، ولا يوجد++في Python. - المقارنات
==و!=و>و<و>=و<=تعطيTrueأوFalse. andوorوnotتجمع الشروط وتعكسها.