اذهب إلى المحتوى
  • 0

سؤال عن مقارنة int مع float

السؤال

نشر

السلام عليكم

في الصورة المرفقة ، لم أفهم لماذا جوابي خطأ ؟

المستخدم أدخل (25) ، ثم سوف يتم تحويله إلى float ، ثم سوف يتم البحث داخل اللائحة ، لكن لا يوجد رقم float داخل اللائحة !

Screenshot 2026-09-15 at 10.06.34 AM.png

Recommended Posts

  • 0
نشر

وعليكم السلام ورحمة الله وبركاته .

في لغة بايثون يُعتبر الرقم الصحيح (int) والرقم العشري (float) متساويين في القيمة إذا كانت قيمتهما العددية متطابقة أي أن 25.0 == 25 تعيد نتيجة True.

لذلك فإن عملية التحقق باستخدام المعامل in لا تعتمد على نوع البيانات (Type) بل تعتمد على المساواة في القيمة .

وإليك ما حدث في الكود الموضح في الصورة :

  • قيمة المتغير: المتغير num يحمل القيمة 25.0.
  • الشرط الأول (if num in nested_nums): يفحص ما إذا كانت القيمة 25.0 موجودة مباشرة داخل القائمة الخارجية nested_nums و القائمة الخارجية تحتوي على القوائم الفرعية والأعداد 18و 19 و 20 فقط لذلك تكون النتيجة False.
  • نأتي للشرط الثاني (elif num in nested_nums[0]): يفحص القائمة الأولى [1, 2, 3, 4, 5] والنتيجة تكون False.
  • والآن نأتي الشرط الثالث (elif num in nested_nums[1]): يفحص القائمة الثانية [6, 7, 8, 9, 10] والنتيجة أيضا False.
  • وأخيرا الشرط الرابع (elif num in nested_nums[2]): يفحص القائمة الثالثة [21, 22, 23, 24, 25] وعند الوصول للرقم 25 داخل القائمة تقوم بايثون بمقارنة 25.0 == 25 فتكون النتيجة True.

وبالتالي يتم تنفيذ أمر الطباعة داخل هذا الشرط وتكون الإجابة الصحيحة هي رقم d ويتم طباعة The number is in the third inner list.

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...