पायथन तार्किक (बूलियन) संचालन करने के लिए तार्किक ऑपरेटरों को प्रदान करता है।(and
,or
,not
)
इसका उपयोग if स्टेटमेंट में कई स्थितियों के बीच संबंध का वर्णन करने के लिए किया जाता है।
यह खंड निम्नलिखित का वर्णन करता है।
- चौराहा:
and
- तार्किक जोड़:
or
- इनकार:
not
and
,or
,not
संचालक वरीयता
इसके अलावा, निम्नलिखित बिंदुओं को सावधानी के रूप में समझाया गया है।
- बूल के अलावा अन्य प्रकार की वस्तुओं के लिए लॉजिकल ऑपरेटर्स
and
,or
ये वापसी मान आवश्यक रूप से बूल प्रकार के नहीं हैं।- शॉर्ट सर्किट (शॉर्ट सर्किट मूल्यांकन)
चौराहा:and
और दो मानों का तार्किक गुणनफल लौटाता है।
print(True and True)
# True
print(True and False)
# False
print(False and True)
# False
print(False and False)
# False
वास्तव में, इसका उपयोग अक्सर सही या गलत के लिए नहीं किया जाता है, बल्कि तुलना ऑपरेटरों का उपयोग करके सशर्त अभिव्यक्तियों के लिए किया जाता है। आपकी जानकारी के लिए, तुलना ऑपरेटर इस प्रकार हैं।
<
>
a = 10
print(0 < a)
# True
print(a < 100)
# True
print(0 < a and a < 100)
# True
और इसे निम्नानुसार जोड़ा जा सकता है।
print(0 < a < 100)
# True
तार्किक जोड़:or
या तार्किक OR दो मानों को लौटाता है।
print(True or True)
# True
print(True or False)
# True
print(False or True)
# True
print(False or False)
# False
इनकार:not
not” मान का निषेध लौटाता है; सत्य और असत्य उलट जाते हैं।
print(not True)
# False
print(not False)
# True
and,or,notसंचालक वरीयता
इन लॉजिकल ऑपरेटरों की प्राथमिकता का क्रम इस प्रकार है: उच्चतम नहीं है।
not
and
or
निम्नलिखित नमूना कोड में, उपरोक्त अभिव्यक्ति की व्याख्या इस तरह की गई है जैसे कि यह नीचे वाला था। चूंकि अतिरिक्त कोष्ठक के साथ कोई समस्या नहीं है, इसलिए इस उदाहरण जैसे मामलों में उनका स्पष्ट रूप से वर्णन करना आसान हो सकता है।
print(True or True and False)
# True
print(True or (True and False))
# True
यदि आप संचालन करना चाहते हैं या पहले और, कोष्ठक () का उपयोग करें।
print((True or True) and False)
# False
<
,>
इन तुलना ऑपरेटरों के पास पहले से कहीं अधिक उच्च प्राथमिकता है। इसलिए, प्रत्येक तुलना ऑपरेशन के लिए कोष्ठक आवश्यक नहीं हैं, जैसा कि ऊपर के उदाहरण में था।
print(0 < a and a < 100)
# True
पायथन में ऑपरेटर वरीयता के सारांश के लिए नीचे दिए गए आधिकारिक दस्तावेज देखें।
बूल के अलावा अन्य प्रकार की वस्तुओं के लिए लॉजिकल ऑपरेटर्स
With these logical operators, not only bool types (true, false), but also numbers, strings, lists, etc. are processed as boolean values.
पायथन के तार्किक संचालन में निम्नलिखित वस्तुओं को गलत माना जाता है।
- स्थिरांक को असत्य के रूप में परिभाषित किया गया है:
None
,false
- संख्यात्मक प्रकारों में शून्य:
0
,0
,0j
,Decimal(0)
,Fraction(0, 1)
- खाली क्रम या संग्रह:
'
,()
,[]
,{}
,set()
,range(0)
अन्य सभी मूल्यों को सत्य माना जाता है।
फ़ंक्शन बूल () का उपयोग किसी ऑब्जेक्ट का बूलियन मान प्राप्त करने के लिए किया जा सकता है। ध्यान दें कि स्ट्रिंग ‘0’ या ‘गलत’ को सत्य माना जाता है।
print(bool(10))
# True
print(bool(0))
# False
print(bool(''))
# False
print(bool('0'))
# True
print(bool('False'))
# True
print(bool([]))
# False
print(bool([False]))
# True
स्ट्रिंग में ‘0’ या ‘गलत’ को असत्य के रूप में संभालने के लिए, distutils.util.strtobool() का उपयोग करें।
and,orये वापसी मान आवश्यक रूप से बूल प्रकार के नहीं हैं।
यहां बूल प्रकार के अलावा किसी अन्य ऑब्जेक्ट का एक उदाहरण दिया गया है, जो प्रत्येक ऑपरेटर के परिणाम को संख्यात्मक मान पर दिखा रहा है।
x = 10 # True
y = 0 # False
print(x and y)
# 0
print(x or y)
# 10
print(not x)
# False
जैसा कि आप ऊपर दिए गए उदाहरण से देख सकते हैं, और और या पायथन में बूल प्रकार के सही या गलत नहीं लौटते हैं, लेकिन यह सही है या गलत है, इस पर निर्भर करते हुए बाएं या दाएं मान को वापस करें। उदाहरण संख्यात्मक है, लेकिन यह अन्य प्रकारों जैसे स्ट्रिंग्स और सूचियों पर भी लागू होता है। संयोग से, बूल प्रकार का सही या गलत नहीं लौटाता है।
और और या के वापसी मूल्यों की परिभाषा इस प्रकार है।
The expression x and y first evaluates x; if x is false, its value is returned; otherwise, y is evaluated and the resulting value is returned.
The expression x or y first evaluates x; if x is true, its value is returned; otherwise, y is evaluated and the resulting value is returned.
6.11. Boolean operations — Expressions — Python 3.10.1 Documentation
जब बाएँ और दाएँ भावों के मान अलग-अलग सत्य और असत्य होते हैं, तो वापसी मूल्यों को समझना आसान होता है। दूसरी ओर, यदि दोनों सत्य हैं या दोनों गलत हैं, तो आदेश के आधार पर वापसी मूल्य भिन्न होगा।
यदि आप इसे किसी if कथन आदि में सशर्त अभिव्यक्ति के रूप में उपयोग करते हैं, तो परिणाम को बूलियन मान के रूप में आंका जाता है और संसाधित किया जाता है, इसलिए आपको इसके बारे में चिंता करने की आवश्यकता नहीं है, लेकिन यदि आप आगे की प्रक्रिया के लिए वापसी मान का उपयोग करते हैं, तो आप सावधान रहने की जरूरत है।
x = 10 # True
y = 100 # True
print(x and y)
# 100
print(y and x)
# 10
print(x or y)
# 10
print(y or x)
# 100
x = 0 # False
y = 0.0 # False
print(x and y)
# 0
print(y and x)
# 0.0
print(x or y)
# 0.0
print(y or x)
# 0
print(bool(x and y))
# False
यदि आप इसे सत्य या असत्य मानना चाहते हैं, तो आप पिछले उदाहरण की तरह कर सकते हैं।bool(x and y)
और और या के वापसी मूल्यों को नीचे दी गई तालिका में संक्षेपित किया गया है।
x | y | x and y | x or y |
---|---|---|---|
true | false | y | x |
false | true | x | y |
true | true | y | x |
false | false | x | y |
शॉर्ट सर्किट (शॉर्ट सर्किट मूल्यांकन)
जैसा कि आप ऊपर दी गई तालिका से देख सकते हैं, यदि x और y में x गलत है, या यदि x या y में x सत्य है, तो y के मान की परवाह किए बिना वापसी मान x होगा।
ऐसे मामले में, y का मूल्यांकन नहीं किया जाता है।
and
,or
ध्यान दें कि यदि आप कुछ प्रोसेसिंग करने के लिए इन प्रक्रियाओं के दाईं ओर किसी फ़ंक्शन या विधि को कॉल करते हैं, तो बाईं ओर के परिणाम के आधार पर प्रक्रिया को निष्पादित नहीं किया जा सकता है।
def test():
print('function is called')
return True
print(True and test())
# function is called
# True
print(False and test())
# False
print(True or test())
# True
print(False or test())
# function is called
# True