कौन सा बेहतर है? (और क्यों?)गलत की जांच करने का सही तरीका क्या है?
if somevalue == False:
या
if somevalue is False:
अगर somevalue
आपका जवाब परिवर्तन एक स्ट्रिंग है?
कौन सा बेहतर है? (और क्यों?)गलत की जांच करने का सही तरीका क्या है?
if somevalue == False:
या
if somevalue is False:
अगर somevalue
आपका जवाब परिवर्तन एक स्ट्रिंग है?
यह बल्कि क्या somevalue
हो सकता है पर निर्भर करता है:
if isinstance(somevalue, bool) and not somevalue
इस False
एक सिंगलटन किया जा रहा है पर निर्भर नहीं करता: somevalue
कुछ भी आप की जांच कर सकता है कि यह एक बूलियन और not
है हो सकता है। यह हमेशा एक सिंगलटन है, तो आप भी कर सकते हैं:
if somevalue is False
लेकिन अजगर की PEP8 कहा गया है आप वर्ग के बारे में अगर यह परवाह नहीं करनी चाहिए और सिर्फ का उपयोग करें:
if not somevalue
इस मूल्यांकन करेंगे यदि somevalue
"गलत" है। Python documentation on Truth value testing देखें।
PEP8 कहता है:
सही है या गलत का उपयोग कर == को बूलियन मूल्यों की तुलना करें।
और देता है इन उदाहरणों:
Yes: if greeting:
No: if greeting == True:
Worse: if greeting is True:
जो करने के लिए अपने मामले में अनुवाद करता है:
Yes: if not greeting:
No: if greeting == False:
Worse: if greeting is False:
ध्यान रखें कि प्रत्येक स्ट्रिंग रिक्त स्ट्रिंग ''
को छोड़कर "truthy" माना जाता है।
is
यह जांच रहा है कि दो वस्तुएं सचमुच समान वस्तु हैं। ==
समानता की जांच कर रहा है।
यदि आप यह जांचना चाहते हैं कि कुछ गलत है, उदा। शून्य, True
के विपरीत, if something == False
करें।
टिप्पणियों में उल्लिखित अनुसार, आप निश्चित रूप से if not something
कर सकते हैं, यह पठनीयता को काफी सुधार सकता है, लेकिन यह if bool(something) == False
जैसा ही है।
मैं समानता पसंद करते हैं, क्योंकि, मेरे मन, को True
और False
सच या झूठी जा रहा है के संदर्भ में 1
और 0
बस की तरह व्यवहार करना चाहिए। उदाहरण के लिए ("a" == "a") == False
False
का मूल्यांकन करता है जैसे ("a" == "a") == 0
करता है।
रास्ता भी होमवर्कवर्क लगता है। – firegurafiku
मैं लिखूंगा 'अगर कुछ नहीं:' हालांकि गैर बूलियन प्रकारों के लिए यह अलग-अलग व्यवहार करेगा: 'अगर नहीं ":' कोड चलाएगा लेकिन 'अगर" "== गलत:' नहीं होगा। – rodrigo
आमतौर पर आप पाइथन में ऑब्जेक्ट की तुलना गलत रूप से 'गलत'/'True' से नहीं करते हैं। बस कुछ करें: 'या' कुछ नहीं: ' –