Python Language
बूलियन ऑपरेटर्स
खोज…
तथा
दूसरे तर्क का मूल्यांकन करता है अगर और केवल अगर दोनों तर्क सत्य हैं। अन्यथा पहले गलत तर्क का मूल्यांकन करता है।
x = True
y = True
z = x and y # z = True
x = True
y = False
z = x and y # z = False
x = False
y = True
z = x and y # z = False
x = False
y = False
z = x and y # z = False
x = 1
y = 1
z = x and y # z = y, so z = 1, see `and` and `or` are not guaranteed to be a boolean
x = 0
y = 1
z = x and y # z = x, so z = 0 (see above)
x = 1
y = 0
z = x and y # z = y, so z = 0 (see above)
x = 0
y = 0
z = x and y # z = x, so z = 0 (see above)
उपरोक्त उदाहरण में 1
को किसी भी सत्य मूल्य में बदला जा सकता है, और 0
का मूल्य किसी भी गलत मूल्य में बदला जा सकता है।
या
यदि कोई एक तर्क सत्य है, तो पहले सत्य तर्क का मूल्यांकन करता है। यदि दोनों तर्क गलत हैं, तो दूसरे तर्क का मूल्यांकन किया जाता है।
x = True
y = True
z = x or y # z = True
x = True
y = False
z = x or y # z = True
x = False
y = True
z = x or y # z = True
x = False
y = False
z = x or y # z = False
x = 1
y = 1
z = x or y # z = x, so z = 1, see `and` and `or` are not guaranteed to be a boolean
x = 1
y = 0
z = x or y # z = x, so z = 1 (see above)
x = 0
y = 1
z = x or y # z = y, so z = 1 (see above)
x = 0
y = 0
z = x or y # z = y, so z = 0 (see above)
उपरोक्त उदाहरण में 1
को किसी भी सत्य मूल्य में बदला जा सकता है, और 0
का मूल्य किसी भी गलत मूल्य में बदला जा सकता है।
नहीं
यह निम्नलिखित कथन के विपरीत है:
x = True
y = not x # y = False
x = False
y = not x # y = True
शॉर्ट-सर्किट मूल्यांकन
पायथन न्यूनतम रूप से बूलियन अभिव्यक्तियों का मूल्यांकन करता है ।
>>> def true_func():
... print("true_func()")
... return True
...
>>> def false_func():
... print("false_func()")
... return False
...
>>> true_func() or false_func()
true_func()
True
>>> false_func() or true_func()
false_func()
true_func()
True
>>> true_func() and false_func()
true_func()
false_func()
False
>>> false_func() and false_func()
false_func()
False
`और` और `या` को एक बूलियन वापस करने की गारंटी नहीं है
जब आप उपयोग करते हैं or
, यह या तो अभिव्यक्ति में पहला मान लौटाएगा यदि यह सत्य है, अन्यथा यह दूसरे मूल्य को नेत्रहीन रूप से वापस कर देगा। Ie or
इसके बराबर है:
def or_(a, b):
if a:
return a
else:
return b
के लिए and
, वह अपने पहले मूल्य अगर यह गलत है वापस आ जाएगी, और यह पिछले मान देता है:
def and_(a, b):
if not a:
return a
else:
return b
एक सरल उदाहरण
पायथन में आप दो बाइनरी ऑपरेटरों का उपयोग कर एक एकल तत्व की तुलना कर सकते हैं - एक तरफ दोनों:
if 3.14 < x < 3.142:
print("x is near pi")
कई (अधिकांश?) प्रोग्रामिंग भाषाओं में, इसका मूल्यांकन नियमित गणित के विपरीत तरीके से किया जाएगा: (3.14 < x) < 3.142
, लेकिन पायथन में इसे 3.14 < x and x < 3.142
तरह व्यवहार किया जाता है, जैसे कि कोई गैर-प्रोग्रामर। उम्मीद करेंगे।