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

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

TheProgrammer

السؤال

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

print "100" < "2"      # True
print "5" > "9"        # False

print "100" < 2        # False
print 100 < "2"        # True

print 5 > "9"          # False
print "5" > 9          # True
رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

شرح من التوثيق الرسمي للبايثون:


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

لذلك فإنه عندما تقوم بالمقارنة بين سلسلتين نصيّتين أو عددين صحيحين فإنه يتم ترتيبهم بطريقة متوقعة وليست عشوائية (ترتيب لكسيكوجرافيك lexicographic للسلاسل النصية، وترتيب رقمي للأعداد الصحيحة).
وعندما تقوم بالمقارنة بين نوع رقمي ونوع غير رقمي، فإن النوع الرقمي يأتي أولا كما في المثال التالي:

>>> 5 < 'foo'
True
>>> 5 < (1, 2)
True
>>> 5 < {}
True
>>> 5 < [1, 2]
True

وعندما تقوم بالمقارنة بين نوعين غير رقميين، فإنه سيتم ترتيبهم حسب ترتيب الأبجدية لاسم النوع:

>>> [1, 2] > 'foo'   # 'list' < 'str'
False
>>> (1, 2) > 'foo'   # 'tuple' > 'str'
True

المصدر

رابط هذا التعليق
شارك على الشبكات الإجتماعية

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...