पायथन के तार्किक ऑपरेटर और, या, और नहीं (तार्किक संयोजन, विघटन, निषेध)

व्यापार

पायथन तार्किक (बूलियन) संचालन करने के लिए तार्किक ऑपरेटरों को प्रदान करता है।(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संचालक वरीयता

इन लॉजिकल ऑपरेटरों की प्राथमिकता का क्रम इस प्रकार है: उच्चतम नहीं है।

  1. not
  2. and
  3. 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)

और और या के वापसी मूल्यों को नीचे दी गई तालिका में संक्षेपित किया गया है।

xyx and yx or y
truefalseyx
falsetruexy
truetrueyx
falsefalsexy

शॉर्ट सर्किट (शॉर्ट सर्किट मूल्यांकन)

जैसा कि आप ऊपर दी गई तालिका से देख सकते हैं, यदि 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