दिलचस्प पोस्ट
केस असंवेदनशील 'शामिल (स्ट्रिंग)' इनपुट तत्व में कोणीय फिल्टर का उपयोग करना एक पत्र मैट्रिक्स से संभावित शब्दों की सूची कैसे प्राप्त करें ECMAScript6 तीर फ़ंक्शन जो एक ऑब्जेक्ट देता है SQL सर्वर: पंक्तियों के लिए कॉलम एंड्रॉइड में स्टेटस बार कैसे छिपाएंगे JSONP सर्वर संशोधनों की आवश्यकता है? पीएसईएक्सईसी, एक्सेस से वंचित त्रुटियां कैसे केक php में सेटअप cronjobs करने के लिए? टाइपस्क्रिप्ट में कन्स्ट्रक्टर अधिभार मैं इसमें शामिल होने के बजाय LINQ शामिल (स्ट्रिंग ) का उपयोग कैसे करूं? प्रोग्रामिंग कैसे UIImage के रंग को बदलने के लिए? मॉडल कक्षाओं में javafx.beans गुणों का उपयोग करना प्लेसहोल्डर मिक्सिन एससीएसएस / सीएसएस उपयोगकर्ता नाम और पासवर्ड के साथ नेटवर्क ड्राइव से कनेक्ट करें

पायथन स्ट्रिंग और इंट की तुलना कैसे करता है?

निम्न स्निपेट को आउटपुट के साथ एनोटेट किया गया है ( जैसा कि ideone.com पर देखा गया है ):

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

क्या कोई बता सकता है कि आउटपुट क्यों ऐसा है?


कार्यान्वयन विवरण

  • क्या यह व्यवहार भाषा विशिष्ट द्वारा अनिवार्य है, या क्या यह लागूकर्ताओं पर निर्भर है?
  • क्या कोई प्रमुख पायथन लागूकरण के बीच अंतर है?
  • क्या पायथन भाषा के संस्करणों के बीच अंतर है?

Solutions Collecting From Web of "पायथन स्ट्रिंग और इंट की तुलना कैसे करता है?"

अजगर 2 मैनुअल से :

CPython कार्यान्वयन विवरण: संख्याओं को छोड़कर विभिन्न प्रकार के ऑब्जेक्ट उनके प्रकार के नामों द्वारा आदेश दिए जाते हैं; समान प्रकार के ऑब्जेक्ट्स जो उचित तुलना का समर्थन नहीं करते हैं उनके पते द्वारा आदेश दिए जाते हैं।

जब आप दो स्ट्रिंग्स या दो संख्यात्मक प्रकारों का ऑर्डर करते हैं तो क्रम को अपेक्षित तरीके से किया जाता है (स्ट्रिंग के लिए शब्दकोषिक क्रम, पूर्णांक के लिए संख्यात्मक ऑर्डर)

जब आप एक संख्यात्मक और एक गैर-संख्यात्मक प्रकार का आदेश देते हैं, तो संख्यात्मक प्रकार पहले आता है।

 >>> 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 >>> class Foo(object): pass >>> class Bar(object): pass >>> Bar() < Foo() True 

एक अपवाद पुराने-शैली वर्ग है जो हमेशा नई-शैली वाले कक्षाओं से पहले आते हैं।

 >>> class Foo: pass # old-style >>> class Bar(object): pass # new-style >>> Bar() < Foo() False 

क्या यह व्यवहार भाषा विशिष्ट द्वारा अनिवार्य है, या क्या यह लागूकर्ताओं पर निर्भर है?

कोई भाषा विनिर्देश नहीं है भाषा संदर्भ कहते हैं:

अन्यथा, अलग-अलग प्रकार के ऑब्जेक्ट हमेशा असमान की तुलना करते हैं, और इन्हें लगातार, लेकिन मनमाने ढंग से आदेश दिए जाते हैं।

तो यह एक कार्यान्वयन विवरण है।

क्या कोई प्रमुख पायथन लागूकरण के बीच अंतर है?

मैं इसका जवाब नहीं दे सकता क्योंकि मैंने आधिकारिक CPYTHON कार्यान्वयन का इस्तेमाल किया है, लेकिन पायथन जैसे अन्य पायथन के कार्यान्वयन भी हैं I

क्या पायथन भाषा के संस्करणों के बीच अंतर है?

पायथन 3.x में व्यवहार को बदल दिया गया है ताकि एक पूर्णांक को आदेश देने का प्रयास किया जा सके और एक स्ट्रिंग एक त्रुटि उत्पन्न करेगी:

 >>> '10' > 5 Traceback (most recent call last): File "<pyshell#0>", line 1, in <module> '10' > 5 TypeError: unorderable types: str() > int() 

स्ट्रिंग्स को तुलनात्मक रूप से तुलना की जाती है, और असमान प्रकारों की तुलना उनके प्रकार ( "int" < "string" ) के नाम से की जाती है। 3.x उन्हें गैर-तुलनीय बनाकर दूसरे बिंदु को हल करता है।