تعلم البرمجة بلغة بايثون - الدرس السابع: العمليات الحسابية في بايثون

في هذا الدرس سنتعرف على العمليات الحسابية المختلفة في بايثون وكيفية إجرائها، وسنتعرف أيضاً على أولوية كل عملية بالنسبة لبايثون.

العمليات الحسابية (Mathematical Operations)

العامل العملية
+ جمع (Addition)
- طرح (Subtraction)
* ضرب (Multiplication)
/ قسمة (Division)
** رفع إلى أس (Power)
٪ باقي القسمة (Remainder)

جميع هذه العمليات معروفة. بالنسبة لعملية باقي القسمة (remainder) فهو كما تشرح الصورة التالية:

في هذه الصورة: تم تقسيم سبعة عظام على كلبين فكان نصيب كل منهما ثلاث عظمات وبقيت عظمة، فباقي القسمة يساوي 1. هذه العملية مفيدة في عدة أحيان. مثلاً عندما نريد أن نحدد في برنامجنا إذا ما كان العدد زوجياً أم فردياً فيمكننا أن نعرف ذلك عن طريق النظر إلى باقي قسمة هذا العدد على 2: إن كان الباقي صفراً فالعدد زوجي وإلا كان فردياً.

أولوية العمليات (Order of Operations)

تختلف قوة العوامل فمثلاً عامل الضرب أقوى من عامل الجمع ولذلك فإن للضرب أولوية على الجمع. القائمة التالية تشرح ترتيب العمليات حسب الأولوية:

  1. الأقواس: العمليات بين الأقواس تنفذ قبل غيرها
  2. الرفع إلى أس
  3. الضرب والقسمة وباقي القسمة: كلها لها نفس الأولوية
  4. الجمع والطرح
  5. من اليسار إلى اليمين: عندما يكون هناك عمليات لها نفس الأولوية ننفذها بدءاً من اليسار إلى اليمين

كمثال على أولوية العمليات: ما هو ناتج تنفيذ الأوامر التالية؟

x = 1 + 2 ** 3 / 4 * 5
print(x)

سيتم تنفيذ 2 ** 3 في البداية لأنها العملية صاحبة الأولوية الأكبر هنا، وسينتج عن العملية العدد 8. فتتحول الجملة من:

1 + 2 ** 3 / 4 * 5

إلى

1 + 8 / 4 * 5

الآن يتم تنفيذ عملية القسمة لأنها ذات الأولوية الأعلى. صحيح أن عملية الضرب لها نفس الأولوية لكن عملية القسمة تأتي قبلها وكما قلنا سابقاً: عندما تتساوى الأولوية نتحرك من اليسار إلى اليمين. فتصبح الجملة:

1 + 2 * 5

الآن يتم تنفيذ عملية الضرب لتصبح الجملة:

1 + 10

وبعدها ننفذ العملية الأخيرة وهي الجمع لنحصل على الناتج النهائي وهو 11.

إذا أردنا أن نغير الترتيب الذي تجري به العمليات أو إذا أردنا مجرد جعل الأمور أكثر وضوحاً خاصة في الجمل الحسابية الطويلة فيمكننا استخدام الأقواس. مثلاً في الجملة السابقة إذا أردنا لعملية الجمع أن يتم تنفيذها قبل البقية نضع أقواساً كما يلي:

(1 + 2) ** 3 / 4 * 5

وعندها سيتم تنفيذ ما بين الأقواس أولاً لأن لها الأولوية الكبرى وسينتج من ذلك:

3 ** 3 / 4 * 5

وسيتم التنفيذ خطوة بعد خطوة حتى نصل إلى الناتج وهو 33.75 وهو رقم مختلف عن الجملة التي بدون أقواس.

ملاحظة: إذا كنت في شك من أمرك فاستعمل الأقواس للتأكد من أن بايثون ستنفذ العملية بالترتيب الذي تريده.

فيديو الدرس