تقنية

numbers.Real في بايثون: هل الجزء التخيلي الصفري يكفي؟

Real يقبل 2.0 ولا يقبل 2 زائد صفر j
نتيجة isinstance(x,Real). [1] [2]

حدد الفحص المقصود. [1] [2]

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

صفر الجزء التخيلي لا يجعل complex من فئة numbers.Real. [1] [2]

  • isinstance(2.0,Real) يعطي True. [1] [2]
  • الفحص نفسه لـ2+0j يعطي False. [1] [2]
  • كلاهما يجتاز Number بالقيمة True. [1] [2]
  • مقارنة 2.0==2+0j تعطي True؛ المساواة لا توحد النوع. [1] [2]
  • اختبرنا 3.12.14 مع النوعين المدمجين، دون تغيير تسجيل الفئات. [1] [2]

المثال

import numbers as n
for x in [2.0,2+0j]:
 print(isinstance(x,n.Number),
       isinstance(x,n.Real))
print(2.0==2+0j)

[1] [2]

المخرجات: True True ثم True False ثم True. [1] [2]

نوع الفحص

float مسجل في Real، وcomplex في Complex. تختبر isinstance الفئة البرمجية، لا شرطًا على قيمة الجزء التخيلي وحده. [1] [2]

كلاهما عددي وفق Number في المثال، لكن هذا الفحص أوسع من Real. [1] [2]

Number يقبل القيمتين في المثال
نتيجة isinstance(x,Number). [1] [2]

المساواة والنطاق

المقارنة ناجحة مع اختلاف الفئة. لا نخلط التصنيف البرمجي بالحكم الرياضي على القيمة، ولا نعمم التجربة على فئات عددية مخصصة. [1] [2]

المراجع

  1. Python: numbers
  2. CPython 3.12.14: numbers.py
  3. موضوع تك: لغة بايثون — مفردات
  4. موضوع تك: تطبيقات بايثون — مفردات

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