تقنية

باقي بايثون: لماذا تعطي remainder قيمة سالبة؟

باقي 7 على 4 يختلف بين remainder و%
خارج 2 أو 1. [1] [2]

اختيار خارج القسمة يغير الباقي. [1] [2]

الخلاصة السريعة

remainder يطرح أقرب مضاعف؛ قد يكون الباقي سالبًا. [1] [2]

  • remainder(7,4)=-1.0؛ 7%4=3. [1] [2]
  • الباقي x-n*y؛ تختار الدالة n الأقرب إلى الخارج الدقيق. [1] [2]
  • التعادل يختار n الزوجي: 6 و10 مع المقسوم عليه 4 يعطيان -2 و2. [1] [2]
  • للأعداد الصحيحة هنا، % يستعمل خارج القسمة المقرب لأسفل. [1] [2]
  • جربنا 3.12.14؛ remainder(7,0) يرفع ValueError. [1] [2]

المثال

from math import remainder
for x in [7,6,10]:
    print(x,remainder(x,4),x%4)

[1] [2]

الناتج: 7 -1.0 3؛ 6 -2.0 2؛ 10 2.0 2. [1] [2]

التفسير

الخارج 7/4=1.75 أقرب إلى 2؛ 7-2*4=-1. أما % فيستخدم 1 هنا؛ 7-1*4=3. [1] [2]

التعادل [1]

عند التعادل، 6/4=1.5 و10/4=2.5 يختاران 2؛ الباقيان 6-8=-2 و10-8=2. الزوجية تخص الخارج المختار، لا تقريب الباقي. [1]

تعادلان يختاران الخارج2
الزوجية للخارج. [1]

النطاق

أعداد صحيحة صغيرة، ومقسوم عليه موجب. الصفر يرفع ValueError في remainder؛ الحالات غير المنتهية خارج المثال. [1]

المراجع

  1. Python: math.remainder
  2. Python: القسمة و%
  3. موضوع تك: لغة بايثون — مفردات
  4. موضوع تك: تطبيقات بايثون — مفردات

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