अजगर 2 में, संख्यात्मक मान हमेशा तरह से पहले तार और लगभग सभी अन्य प्रकार:
>>> sorted(['a', 5])
[5, 'a']
नंबर तो, छोटे तार से माना जाता है। max()
का उपयोग करते समय, इसका मतलब है कि स्ट्रिंग को किसी संख्या पर चुना जाता है।
वह संख्याएं छोटी हैं मनमाने ढंग से कार्यान्वयन विकल्प है। देखें Comparisons documentation:
ऑपरेटरों <
, >
, ==
, >=
, <=
, और !=
दो वस्तुओं के मूल्यों की तुलना करें। वस्तुओं को एक ही प्रकार की आवश्यकता नहीं है। यदि दोनों संख्याएं हैं, तो वे एक सामान्य प्रकार में परिवर्तित हो जाते हैं। अन्यथा, विभिन्न प्रकार की वस्तुओं हमेशा असमान की तुलना करते हैं, और मनमाने ढंग से लेकिन मनमाने ढंग से आदेश दिया जाता है।
बोल्ड जोर मेरा है।
पायथन 2 ने विषम प्रकारों को क्रमबद्ध करने के लिए वास्तविक मेहनत की कोशिश की, जिसके कारण समस्याओं को डीबग करने में बहुत मेहनत हुई है, जैसे प्रोग्रामर स्ट्रिंग के साथ पूर्णांक की तुलना करने और अप्रत्याशित परिणाम प्राप्त करने की कोशिश कर रहे हैं। पायथन 3 ने इस गलती को सही किया; यहां तक कि re-implemented the Python 2 rules for Python 3
>>> max(5, 'a')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unorderable types: str() > int()
मैं written elsewhere about the ordering rules है, और, यदि आप वास्तव में उन वापस चाहता था: यदि आप एक TypeError
बजाय मिल जाएगा।
स्रोत
2015-02-01 01:39:09
संबंधित: [क्यों पाइथन में सबसे छोटा नहीं है?] (Http: // stackoverflow।कॉम/क्यू/22040724) –
संभव डुप्लिकेट [पायथन स्ट्रिंग और int की तुलना कैसे करता है?] (http://stackoverflow.com/questions/3270680/how-does-python-compare-string-and-int) – lightandlight