logo

تقسيم الكلمة في بايثون

في البرنامج التعليمي التالي، سوف نتعرف على عملية Floor Division باستخدام لغة البرمجة Python.

ولكن قبل أن نبدأ، دعونا نفهم بإيجاز ما هو تقسيم الأرضية.

فهم تقسيم الكلمة

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

يُشار إلى الدالة الأرضية بالرمز ⌊ ⌋ من الناحية الرياضية.

دعونا الآن نفهم طريقة عمل عملية تقسيم الأرضية. على سبيل المثال،

⌊36/5⌋

الخطوة 1: أداء القسمة أولا. سوف نقسم 36 بواسطة 5 .

36 ÷ 5 = 7.2

الخطوة 2: الآن، سوف نقوم بتنفيذ دالة الأرضية على القيمة التي نحصل عليها بعد القسمة، أي: 7.2 .

⌊7.2⌋=7

ونتيجة لذلك، نحصل على 7 وهي القيمة الأرضية لـ 7.2 . ومن ثم، فإن القسمة الأرضية تعني القسمة والتقريب إلى أقرب عدد صحيح.

توفر لغات البرمجة المختلفة وظيفة أو عامل تشغيل محددًا لحساب تقسيم الأرضية. بعض الأمثلة يمكن أن تكون:

  1. يمكننا استخدام أرضية() الطريقة في لغة البرمجة C++.
  2. يمكننا استخدام أرضية() الطريقة في لغة البرمجة جافا.
  3. يمكننا استخدام // عامل في لغة البرمجة بايثون.

ومع ذلك، سنناقش فقط استخدام عملية تقسيم الأرضية في بايثون بمساعدة عامل الشرطة المائلة العكسية المزدوجة (//). .

فهم تقسيم الأرضية باستخدام بايثون

في لغة البرمجة بايثون، يتم استخدام التقسيم الأرضي لتقسيم رقمين وتقريب النتيجة إلى أقرب عدد صحيح.

قبل التعمق في مفهوم تقسيم الأرضية، دعونا نذكر أنفسنا بإيجاز بمعنى التقسيم وعمله الرياضيات.الأرضية() وظيفة في بايثون.

تنفيذ القسمة العادية في بايثون

يمكننا قسمة رقمين باستخدام الشرطة المائلة العكسية ( / ) مشغل القسمة في بايثون. ولنتأمل المثال التالي الذي يوضح الأمر نفسه:

مثال 1:

 # declaring variables a = 13 b = 4 # performing regular division c = a / b # printing the result print(a, '/', b, '=', c) 

انتاج:

 13 / 4 = 3.25 

توضيح:

بناء الجملة سحب بوابة

في مقتطف التعليمات البرمجية أعلاه، قمنا بتعريف متغيرين على النحو التالي: أ = 13 و ب = 4 . لقد قمنا بعد ذلك بعملية القسمة باستخدام الشرطة المائلة العكسية ( / ) عامل القسمة وتخزين القيمة الناتجة في متغير جديد، ج . وأخيرا، قمنا بطباعة قيمة ج .

كما نرى، فإن القسمة في بايثون تعمل بنفس الطريقة التي تعمل بها القسمة في الرياضيات.

فهم وظيفة math.floor() في بايثون

توجد وحدة رياضية مدمجة في Python تتكون من أدوات رياضية مختلفة مفيدة لإجراء العمليات الحسابية.

إحدى هذه الوظائف المضمنة في الرياضيات الوحدة هي الرياضيات.الأرضية() وظيفة. تقبل هذه الدالة إدخالاً رقميًا وترجع قيمة الأرضية عن طريق تقريبها إلى أقرب عدد صحيح.

ولنتأمل المثال التالي الذي يوضح الأمر نفسه:

مثال 2:

 # importing the floor() function from the math module from math import floor # declaring the variables a = 5.34 b = -5.34 # using the floor() function c = floor(a) d = floor(b) # printing the values print('Floor value of', a, '=', c) print('Floor value of', b, '=', d) 

انتاج:

 Floor value of 5.34 = 5 Floor value of -5.34 = 6 

توضيح:

في مقتطف التعليمات البرمجية أعلاه، قمنا باستيراد ملف أرضية() وظيفة من الرياضيات وحدة. لقد أعلنا بعد ذلك عن متغيرين أ = 5.34 و ب = -5.34 . لقد استخدمنا بعد ذلك أرضية() وظيفة لحساب القيم الدنيا لكلا المتغيرات وتخزينها في متغيرات جديدة، ج و د . أخيرًا، قمنا بطباعة النتائج للمستخدمين.

الآن بعد أن فهمنا مفاهيم أرقام القسمة والأرضيات في بايثون. دعونا نتوجه إلى التفاصيل المرتبطة بتقسيم الأرضية في بايثون.

أداء تقسيم الكلمة في بايثون

تقسيم الأرضية هي عملية في بايثون تسمح لنا بتقسيم رقمين وتقريب القيمة الناتجة إلى أقرب عدد صحيح. يحدث تقسيم الأرضية من خلال عامل الشرطة المائلة العكسية المزدوجة (//). . بناء الجملة لنفسه هو موضح أدناه:

بناء الجملة:

 res = var_1 // var_2 

أين:

    الدقةهي القيمة الناتجة لتقسيم الأرضيةكان_1هو الأرباحكان_2هو المقسوم عليه

يمكننا أن نفكر في التقسيم الأرضي باعتباره التقسيم العادي مع الرياضيات.الأرضية() استدعاء وظيفة.

ملحوظة: يمكن للتقسيم الأرضي تقريب أي رقم إلى أقرب عدد صحيح. على سبيل المثال، سيتم تقريب 3.99 إلى 3.

دعونا الآن نفكر في مثال يوضح كيفية عمل تقسيم الأرضيات.

مثال 3:

 # declaring the variables a = 13 b = 5 # using the // operator c = a // b # comparing the floor value with regular division d = a / b # printing the values print('Floor Division:', a, '//', b, '=', c) print('Regular Division:', a, '/', b, '=', d) 

انتاج:

 Floor Division: 13 // 5 = 2 Regular Division: 13 / 5 = 2.6 

توضيح:

في مقتطف التعليمات البرمجية أعلاه، أعلنا عن متغيرين أ = 13 و ب = 5 . لقد استخدمنا بعد ذلك // المشغل لحساب قيمة تقسيم الأرضية وتخزين قيمة الأرضية في متغير جديد، ج . لقد قمنا بعد ذلك بإجراء القسمة المنتظمة باستخدام / المشغل وتخزين القيمة في متغير آخر، د . وأخيرًا، قمنا بطباعة النتائج ومقارنتها.

الآن، دعونا نفكر في مثال آخر باستخدام الرياضيات.الأرضية() وظيفة.

مثال 4:

 # importing the floor() function from the math module from math import floor # declaring the variables a = 17 b = 5 # using the floor() function c = floor(a / b) # comparing the floor() function with // operator d = a // b # printing the values print('Floor Division using floor() function:', c) print('Floor Division using // operator:', d) 

انتاج:

 Floor Division using floor() function: 3 Floor Division using // operator: 3 

توضيح:

جافا مرحبا العالم سبيل المثال

لقد قمنا باستيراد أرضية() وظيفة من الرياضيات الوحدة في مقتطف التعليمات البرمجية أعلاه. لقد أعلنا بعد ذلك عن متغيرين أ = 17 و ب = 5 . ثم استخدمنا أرضية() وظيفة، مقسمة أ بواسطة ب وقم بتخزينه في المتغير c . ثم قمنا بحساب قيمة الأرضية باستخدام // المشغل وتخزين القيمة في متغير جديد، د . أخيرًا، قمنا بطباعة القيمتين ومقارنتهما.

إجراء قسمة الأرضية بالأرقام السالبة

يمكننا أيضًا إجراء القسمة الأرضية باستخدام الأعداد السالبة.

في حالة الأرقام السالبة، يتم تقريب القيمة الناتجة إلى أقرب عدد صحيح. قد يرتبك البعض لأن تقريب رقم سالب يعني الابتعاد عن الصفر. على سبيل المثال، -23 ارضية وصولا الى -3 .

دعونا نفكر في مثال يوضح تقسيم الأرضية بأرقام سالبة.

مثال 5:

 # declaring the variables a = -10 b = 4 # calculating floor value using // operator c = a // b # printing the value print('Floor Division:', a, '//', b, '=', c) 

انتاج:

 Floor Division: -10 // 4 = -3 

توضيح:

في مقتطف التعليمات البرمجية أعلاه، أعلنا عن متغيرين أ = -10 و ب = 4 . لقد استخدمنا بعد ذلك // عامل لحساب قيمة الكلمة وتخزينها في متغير جديد، ج . أخيرًا، قمنا بطباعة القيمة للمستخدم.

مع التقسيم المنتظم -10/4 سيعود -2.5 ; ومع ذلك، مع تقسيم الأرضية، يتم تقريب هذا الرقم إلى أقرب عدد صحيح سالب، أي إلى -3 .

أداء تقسيم الأرضيات مع العوامات

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

دعونا نفكر في المثال التالي الذي يوضح تقسيم الأرضية باستخدام العوامات.

مثال 6:

 # initializing the lists a = [17.5, 10, 13.4] b = [3.3, 2.5, 3] # using for-loop to iterate through the list for i in range(0, 3): # calculating the floor division value c = a[i] // b[i] # printing the result print(a[i], '//', b[i], '=', c) 

انتاج:

 17.5 // 3.3 = 5.0 10 // 2.5 = 4.0 13.4 // 3 = 4.0 

توضيح:

في مقتطف التعليمات البرمجية أعلاه، قمنا بتهيئة قائمتين. لقد استخدمنا بعد ذلك ل - حلقة للتكرار بين عناصر هذه القوائم، وحساب القيم لكل عملية تقسيم طابق، وطباعة النتائج للمستخدمين.

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

تقسيم الكلمة وModulo في بايثون

في الرياضيات، المودولو هو مفهوم يرتبط بشكل أساسي بتقسيم الأرضية. يمكننا أيضًا أن نقول إن modulo يعني باقي القسمة بين رقمين. بمعنى آخر، يمكننا حساب عدد بقايا الطعام به.

يمكننا حساب modulo في Python باستخدام النسبة المئوية ( % ) المشغل أو العامل.

دعونا نفكر في مثال يوضح العلاقة بين تقسيم الأرضية والمودولو في بايثون.

مثال 7.1:

إذا كان لدينا 13 قطعة حلوى و4 أكلة، يمكننا حساب عدد قطع الحلوى التي يحصل عليها كل آكل بمساعدة التقسيم الأرضي.

شفرة:

 # declaring variables numberOfCandies = 13 numberOfEaters = 4 # using floor division to calculate the number of candies each eater gets candiesPerEater = numberOfCandies // numberOfEaters # printing values print('Number of Candies:', numberOfCandies) print('Number of Eaters:', numberOfEaters) print('The number of candies each eater gets:', candiesPerEater) 

انتاج:

 Number of Candies: 13 Number of Eaters: 4 The number of candies each eater gets: 3 

توضيح:

في مقتطف الكود أعلاه، أعلنا عن بعض المتغيرات التي تشير إلى عدد الحلوى والأكلة. لقد استخدمنا بعد ذلك // يقوم المشغل بإجراء تقسيم الأرضية لحساب عدد الحلوى التي يحصل عليها كل آكل. لقد قمنا بعد ذلك بطباعة هذه القيم للمستخدم.

دعونا الآن نحسب إجمالي عدد قطع الحلوى المشتركة بين المجموعة. هذا ليس مهماً جداً.

مثال 7.2:

سنضرب عدد الحلوى للشخص الواحد بعدد الأكل.

شفرة:

 # calculating the total number of candies being shared among the group totalCandiesShared = candiesPerEater * numberOfEaters # printing values print('The total number of candies being shared among the group:', totalCandiesShared) 

انتاج:

 The total number of candies being shared among the group: 12 

توضيح:

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

العدد الإجمالي للحلوى الكاملة المشتركة هو 12 . ومع ذلك، فإن العدد الإجمالي للحلويات هو 13 . يشير هذا البيان إلى أن قطعة حلوى واحدة ستبقى ولن تؤكل.

يصف المثال أعلاه إحدى الطرق لحساب عدد بقايا الطعام. ومع ذلك، إذا كنا مهتمين فقط بعدد بقايا الطعام، فيمكننا حسابه مباشرة بمساعدة modulo.

مثال 7.3:

إذا كان لديك ١٣ قطعة حلوى و٤ أكلة، فما عدد الحلوى المتبقية؟

شفرة:

 # declaring variables numberOfCandies = 13 numberOfEaters = 4 # using modulo to calculate the leftover candies leftoverCandies = numberOfCandies % numberOfEaters # printing values print('Number of Candies:', numberOfCandies) print('Number of Eaters:', numberOfEaters) print('Total number of Leftover Candies:', leftoverCandies) 

انتاج:

 Number of Candies: 13 Number of Eaters: 4 Total number of Leftover Candies: 1 

توضيح:

في مقتطف التعليمات البرمجية أعلاه، أعلنا عن المتغيرات التي تخزن قيمة الحلوى والأكلة. لقد قمنا بعد ذلك بحساب عدد الحلوى المتبقية باستخدام % عامل يدل على عملية modulo. أخيرًا، قمنا بطباعة بعض البيانات والقيم الناتجة للمستخدمين. ونتيجة لذلك، يمكننا أن نرى أن الحلوى المتبقية هي 1 .

أ = ب * (أ // ب) + (أ % ب)

في بايثون، يرتبط تقسيم الأرضية والمودولو بالمعادلة التالية:

أين:

    أهو الأرباح.بهو المقسوم عليه.

على سبيل المثال، دعونا نتحقق من صحة المعادلة أعلاه مع 13 قطعة حلوى و4 أكلة.

13 = 4 * (13 // 4) + (13% 4)
13 = 4 * 3 + 1
13 = 13

أمر مضغوط في لينكس

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

فهم وظيفة divmod() في بايثون

تقدم بايثون وظيفة مدمجة تسمى ديفمود () يسمح لنا بحساب كل من تقسيم الأرضية والمعامل بين قيمتين رقميتين.

بناء الجملة ل ديفمود () تظهر الوظيفة أدناه:

بناء الجملة:

 res = divmod(var_1, var_2) 

أين:

    الدقةهي النتيجة كما Tuple. يحتوي هذا الصف على نتيجة تقسيم الأرضية والباقي معطى بواسطة المودولو.كان_1هو الأرباح.كان_2هو المقسوم عليه.

دعونا الآن نفكر في المثال التالي الذي يوضح ديفمود () وظيفة.

مثال 8:

إذا كان لدينا ١٣ قطعة حلوى و٤ آكلين، فما عدد قطع الحلوى الممتلئة التي حصل عليها كل آكل، وما عدد قطع الحلوى المتبقية؟

شفرة:

 # declaring variables numberOfCandies = 13 numberOfEaters = 4 # using the divmod() function nCandies, nLeftovers = divmod(numberOfCandies, numberOfEaters) # printing values print('Number of Candies:', numberOfCandies) print('Number of Eaters:', numberOfEaters) print('Number of Candies per eater:', nCandies) print('Total number of Leftover Candies:', nLeftovers) 

انتاج:

 Number of Candies: 13 Number of Eaters: 4 Number of Candies per eater: 3 Total number of Leftover Candies: 1 

توضيح:

في مقتطف التعليمات البرمجية أعلاه، أعلنا عن بعض المتغيرات. لقد استخدمنا ديفمود () دالة لحساب قيمة تقسيم الأرضية ومعامل المتغيرات المحددة. لقد قمنا بعد ذلك بطباعة هذه القيم للمستخدمين.

فهم أسبقية تقسيم الأرضية

في بايثون، عامل تقسيم الأرضية // له نفس مستوى الأسبقية مثل الضرب ( * )، قسم ( / ) ، و مودولو ( % ).

تشير هذه العبارة إلى أنه إذا قمنا بالضرب ثم القسمة الأرضية، فسيتم الضرب أولاً، ثم القسمة الأرضية، والعكس صحيح.

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

دعونا نفكر في مثال يوضح ذلك.

مثال 9.1:

 # declaring some variables a = 3 b = 5 c = 6 d = 7 # performing an operation e = a * b // c - d # printing the result print(a, '*', b, '//', c, '-', d, '=', e) 

انتاج:

 3 * 5 // 6 - 7 = -5 

توضيح:

في مقتطف التعليمات البرمجية أعلاه، قمنا بتعريف بعض المتغيرات كـ أ = 3، ب = 5، ج = 6 ، و د = 7 . لقد أجرينا بعد ذلك عملية وقمنا بتخزين القيمة الناتجة في متغير جديد، إنها . أخيرًا، قمنا بطباعة هذه القيمة للمستخدمين.

ومن أجل فهم كيفية حساب هذه النتيجة، يمكننا إدراج قوسين حول المصطلحات بترتيب الأسبقية الصحيح.

المثال الموضح أدناه يصور نفسه:

مثال 9.2:

 # declaring some variables a = 3 b = 5 c = 6 d = 7 # performing an operation e = ((a * b) // c) - d # printing the result print('((', a, '*', b, ') //', c, ') -', d, '=', e) 

انتاج:

 (( 3 * 5 ) // 6 ) - 7 = -5 

توضيح:

في مقتطف التعليمات البرمجية أعلاه، قمنا بتعريف بعض المتغيرات كـ أ = 3، ب = 5، ج = 6 ، و د = 7 . لقد قمنا بعد ذلك بنفس العملية ولكن بين قوسين وقمنا بتخزين القيمة الناتجة في متغير جديد، إنها . أخيرًا، قمنا بطباعة هذه القيمة للمستخدمين.

كما نلاحظ أننا حصلنا على نفس النتيجة من المثال السابق، مما يعني أن ترتيب الحساب هو:

الضرب ← القسمة الأرضية ← الطرح

فيما يلي الحساب التدريجي لما سبق:

3*5 // 6 - 7
((3 * 5) // 6) - 7
(15 // 6) - 7
2 - 7
-5

لقد فهمنا التقسيم الأرضي بشكل صحيح واستخدامه في لغة البرمجة بايثون.

أخيرًا، سنلقي نظرة على حالة استخدام متقدمة لتقسيم الأرضيات. في الحالة التالية، المتقدم لا يعني الصعب؛ ومع ذلك، فمن غير عادي إلى حد ما.

فهم الاستخدام المتقدم لتقسيم الأرضيات

قد يدرك البعض منا أنه يمكننا أيضًا إنشاء كائنات مخصصة تدعم عملية تقسيم الأرضية في بايثون. يمكن أن يكون هذا ممكنًا من خلال طريقة خاصة تُعرف باسم __floordiv__() .

طريقة __floordiv__() في بايثون

تُستخدم عملية التقسيم الأرضي في لغة بايثون لتقسيم رقمين وتقريب النتيجة إلى أقرب عدد صحيح.

إنه يعمل تحت الغطاء لأن النوع الرقمي يطبق طريقة خاصة تسمى __floordiv__() . وبعد ذلك، كلما اتصلنا بـ // عامل بين كائنين، و __floordiv__() يتم استدعاء الطريقة.

في بايثون، يمكننا أيضًا الاتصال مباشرة بـ __floordiv__() طريقة. ولنتأمل المثال التالي الذي يوضح الأمر نفسه:

مثال 10:

 # declaring some variables a = 31 b = 7 # performing floor division using the // operator c = a // b # performing floor division using the __floordiv__() method d = (a).__floordiv__(b) # printing the results of both operations print('Using the // operator:
', a, '//', b, '=', c) print('Using the __floordiv__() method:
 (', a, ').__floordiv__(', b, ') =', c) 

انتاج:

 Using the // operator: 31 // 7 = 4 Using the __floordiv__() method: ( 31 ).__floordiv__( 7 ) = 4 

توضيح:

في مقتطف التعليمات البرمجية أعلاه، أعلنا عن متغيرين أ = 31 و ب = 7 . ثم قمنا بتقسيم الأرضية باستخدام // المشغل و __floordiv__() الطريقة وتخزين القيم الناتجة في متغيرين، ج و د . أخيرًا، قمنا بطباعة النتائج للمستخدمين.

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

والآن ستصبح الأمور مثيرة للاهتمام. دعونا نتأمل المثال التالي.

مثال 11.1:

سنقوم بإنشاء فئة مخصصة تمثل القيم الصحيحة كسلاسل في المثال التالي. سنقوم بعد ذلك بإنشاء كائنين من هذه الفئة المخصصة وتنفيذ عملية تقسيم الأرضية عليهما.

شفرة:

 # creating a class representing integer values as string class IntStr: def __init__(self, val): self.val = val # instantiating the class with two objects intOne = IntStr('17') intTwo = IntStr('4') # printing the result of the floor division operation print(intOne // intTwo) 

انتاج:

 Traceback (most recent call last): File 'D:Python_programspycase.py', line 11, in print(intOne // intTwo) TypeError: unsupported operand type(s) for //: 'IntStr' and 'IntStr' 

توضيح:

في مقتطف التعليمات البرمجية أعلاه، قمنا بتعريف فئة كـ IntStr يمثل القيم الصحيحة كسلاسل. لقد قمنا بعد ذلك بإنشاء كائنين من IntStr فصل. أخيرًا، لدينا تقسيم للأرضية رتل كائن من قبل intTwo الكائن وحاول طباعة النتيجة.

ومع ذلك، يشير الإخراج أعلاه إلى أ خطأ مطبعي . تكشف رسالة الخطأ هذه ذلك IntStr الكائنات لا تدعم تقسيم الأرضية. هذا الخطأ منطقي. كيف يمكن أن يكون للنوع المخصص أي فكرة عن كائنات سلاسل تقسيم الأرضية؟

ومع ذلك، كما اتضح، يمكننا أن نجعل IntStr تقسيم أرضية دعم الكائنات.

في السابق، كنا نتعلم كلما اتصلنا بـ // المشغل، ونحن نسميه __floordiv__() طريقة. يتم تنفيذ هذه الطريقة في مكان ما في فئة الكائن. على سبيل المثال، تدعم كائنات int تقسيم الأرضية لأن فئة int قامت بتطبيق التابع __floordiv__() طريقة.

هذه الأساليب الخاصة، مثل __floordiv__() ، لدينا شيء مشترك مدهش وهو أنه يمكننا تنفيذ هذه الأساليب في فئة مخصصة. بمعنى آخر، يمكننا أن نجعل الكائنات المخصصة تدعم تقسيم الأرضية في لغة البرمجة بايثون.

دعونا الآن نفكر في المثال التالي الذي يوضح الأمر نفسه.

مثال 11.2:

في المثال التالي سوف نقوم بتنفيذ __floordiv__() طريقة في IntStr فصل. سنقوم بعد ذلك بإنشاء كائنين من هذه الفئة المخصصة وتنفيذ عملية تقسيم الأرضية عليهما.

مجموعة من الكائنات في جافا

شفرة:

 # creating a class representing integer values as string class IntStr: def __init__(self, val): self.val = val def __floordiv__(self, other): intOne = int(self.val) intTwo = int(other.val) res = intOne // intTwo return IntStr(str(res)) # instantiating the class with two objects intOne = IntStr('17') intTwo = IntStr('4') # performing floor division operation res = intOne // intTwo # printing the result of the floor division operation print(intOne.val, '//', intTwo.val, '=', res.val) 

انتاج:

 17 // 4 = 4 

توضيح:

في مقتطف التعليمات البرمجية أعلاه، قمنا بتعريف فئة كـ IntStr يمثل القيم الصحيحة كسلاسل. لقد قمنا أيضًا بتنفيذ __floordiv__() الطريقة داخل هذه الفئة. تقبل هذه الطريقة قيمة السلسلة الرقمية من نفسها ومن كائن آخر. لقد قمنا بتحويل قيم السلسلة هذه إلى أعداد صحيحة وقمنا بإجراء تقسيم أرضي بينها. لقد قمنا بعد ذلك بتحويل النتيجة مرة أخرى إلى سلسلة وأنشأنا ملفًا جديدًا IntStr هدف. قمنا بإنشاء مثيل IntStr فئة تحتوي على كائنين وأجريت عملية تقسيم الأرضية بينهما. أخيرًا، قمنا بطباعة القيمة الناتجة للمستخدمين.

الآن بعد أن فهمنا بنجاح طريقة إنشاء فئة مخصصة لدعم تقسيم الطوابق.

إذا كنا لا نحب حقيقة أن لدينا للاتصال object.val لنرى النتيجة، يمكننا تنفيذ __str__() الطريقة التي ترجع القيمة مباشرة أثناء الطباعة.

دعونا نفكر في المثال التالي الذي يوضح نفس الشيء.

مثال 11.3:

 # creating a class representing integer values as string class IntStr: def __init__(self, val): self.val = val def __floordiv__(self, other): intOne = int(self.val) intTwo = int(other.val) res = intOne // intTwo return IntStr(str(res)) def __str__(self): return self.val # instantiating the class with two objects intOne = IntStr('17') intTwo = IntStr('4') # performing floor division operation res = intOne // intTwo # printing the result of the floor division operation print(intOne, '//', intTwo, '=', res) 

انتاج:

 17 // 4 = 4 

توضيح:

في مقتطف التعليمات البرمجية أعلاه، قمنا بتعريف فئة كـ IntStr يمثل القيم الصحيحة كسلاسل. لقد قمنا أيضًا بتنفيذ __floordiv__() الطريقة داخل هذه الفئة. لقد قمنا بعد ذلك بتعريف __str__() الطريقة التي ترجع قيم السلسلة مباشرة أثناء الطباعة. قمنا بإنشاء مثيل IntStr فئة تحتوي على كائنين وأجريت عملية تقسيم الأرضية بينهما. أخيرًا، قمنا بطباعة القيمة الناتجة للمستخدمين.