>>> item = 2
>>> seq = [1,2,3]
>>> print (item in seq)
True
>>> print (item in seq is True)
False
दूसरा print
कथन आउटपुट False
क्यों है?`in` ऑपरेटर से अप्रत्याशित परिणाम - पायथन
>>> item = 2
>>> seq = [1,2,3]
>>> print (item in seq)
True
>>> print (item in seq is True)
False
दूसरा print
कथन आउटपुट False
क्यों है?`in` ऑपरेटर से अप्रत्याशित परिणाम - पायथन
in
और is
पायथन में तुलना ऑपरेटर हैं, जैसा कि कहते हैं, <
और ==
। सामान्य तौर पर,
expr1 <comparison1> expr2 <comparison2> expr3
रूप
(expr1 <comparison1> expr2) and (expr2 <comparison2> expr3)
कि expr2
को छोड़कर केवल एक बार मूल्यांकन किया जाता है माना जाता है। यही कारण है कि, उदाहरण के लिए,
0 <= i < n
अपेक्षा के अनुसार काम करता है। हालांकि, यह पर लागू होता है जंजीर तुलना ऑपरेटर। अपने उदाहरण में,
item in seq is True
तो पूरे अभिव्यक्ति गलत है,
(item in seq) and (seq is True)
seq is True
हिस्सा गलत है माना जाता है। क्या आप शायद इरादा पाने के लिए, समूह को बदलने के लिए कोष्ठक का उपयोग:
print((item in seq) is True)
Click here for the docs। के रूप में (seq यह सच है) झूठी है और इसलिए अपने बयान आउटपुट झूठी नीचे
>>>print ((item in seq) and (seq is True))
False
दिखाया
अपने बयान item in seq is True
आंतरिक (item in seq) and (seq is True)
के रूप में मूल्यांकन किया जाता है।
क्या यह @ टिम पीटर्स उत्तर में पर्याप्त रूप से समझाया नहीं गया है? –
@ t.m.adam - हम दोनों ने एक ही समय में कम या ज्यादा उत्तर दिया। यदि उसका उत्तर इसे अधिक विस्तृत तरीके से समझाता है, तो मुझे यह जवाब हटा दें। – Beginner
@ विजेता संख्या। क्या किसी प्रश्न के दो सही उत्तर नहीं हो सकते हैं? – void
नीचे दिया गया उत्तर सही नहीं है।
In [17]: item in (seq is True)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-17-4e7d6b2332d7> in <module>()
----> 1 item in (seq is True)
लेखन त्रुटि:: टिप्पणी यह एक मैं सत्यापित बताते प्रकार 'bool' का तर्क iterable
पिछला जवाब नहीं है मेरा मानना है कि यह seq is True
मूल्यांकन कर रही है (जो bool False
का मूल्यांकन) , फिर item in False
का मूल्यांकन (जो False
का मूल्यांकन करता है)।
संभवतः आपका मतलब print (item in seq) is True
(जो True
का मूल्यांकन करता है)?
'False में आइटम '' TypeError' उठाता है, क्योंकि दायां हाथ मान एक पुनरावर्तनीय होना चाहिए, जो' गलत 'नहीं है। –
उत्तर बदल गया। धन्यवाद – travelingbones
यह हो सकता है कि पाइथन अभिव्यक्ति का मूल्यांकन कैसे करता है। आप 'प्रिंट ((सीक में आइटम) का उपयोग करना चाहते हैं)' –