संभव डुप्लिकेट:
Python “is” operator behaves unexpectedly with integersक्यों (0-6) है -6 = झूठा?
आज मैं अपनी परियोजना डिबग करने की कोशिश की और विश्लेषण करने के कुछ ही घंटों के बाद मैं यह मिल गया था:
>>> (0-6) is -6
False
लेकिन,
>>> (0-5) is -5
True
क्या आप मुझे समझा सकते हैं, क्यों? शायद यह किसी प्रकार का बग या बहुत अजीब व्यवहार है।
> Python 2.7.3 (default, Apr 24 2012, 00:00:54) [GCC 4.7.0 20120414 (prerelease)] on linux2
>>> type(0-6)
<type 'int'>
>>> type(-6)
<type 'int'>
>>> type((0-6) is -6)
<type 'bool'>
>>>
अच्छी तरह से नीचे की ओर wacky – Wug
आपको पहले स्थान पर 'is' का उपयोग करने का क्या कारण था? ऐसा कुछ ऐसा नहीं है जिसे अक्सर पायथन में इस्तेमाल किया जाना चाहिए, 'है/नहीं है' केस के अलावा। –
@ रसेल की टिप्पणी सिर पर नाखून को हिट करती है - समस्या यह है कि कोई व्यक्ति स्पष्ट रूप से संख्याओं की तुलना करने के लिए "है" का उपयोग कर रहा था और उम्मीद की थी कि यह '=', गलत उम्मीद की तरह कार्य करे। – LarsH