Python चे लॉजिकल ऑपरेटर आणि, किंवा, आणि नाही (लॉजिकल संयोजन, वियोग, नकार)

व्यवसाय

Python तार्किक (बूलियन) ऑपरेशन्स करण्यासाठी लॉजिकल ऑपरेटर पुरवतो.(and,or,not)
इफ स्टेटमेंटमधील एकाधिक परिस्थितींमधील संबंधांचे वर्णन करण्यासाठी याचा वापर केला जातो.

हा विभाग खालील गोष्टींचे वर्णन करतो.

  • छेदनबिंदू:and
  • तार्किक जोडा:or
  • नकार:not
  • and,or,notऑपरेटर प्राधान्य

याव्यतिरिक्त, खालील मुद्दे सावधगिरी म्हणून स्पष्ट केले आहेत.

  • bool व्यतिरिक्त इतर प्रकारच्या वस्तूंसाठी लॉजिकल ऑपरेटर
  • and,orही रिटर्न व्हॅल्यूज bool प्रकारची असणे आवश्यक नाही.
  • शॉर्ट सर्किट (शॉर्ट सर्किट मूल्यांकन)

छेदनबिंदू: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

नाही” मूल्याचे नकार परत देत नाही; खरे आणि खोटे उलट आहेत.

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

Python मधील ऑपरेटर प्राधान्याच्या सारांशासाठी खालील अधिकृत दस्तऐवज पहा.

bool व्यतिरिक्त इतर प्रकारच्या वस्तूंसाठी लॉजिकल ऑपरेटर

With these logical operators, not only bool types (true, false), but also numbers, strings, lists, etc. are processed as boolean values.

Python च्या लॉजिकल ऑपरेशन्समध्ये खालील ऑब्जेक्ट्स खोट्या समजल्या जातात.

  • असत्य म्हणून परिभाषित केलेले स्थिरांक:None,false
  • अंकीय प्रकारात शून्य:0,0,0j,Decimal(0),Fraction(0, 1)
  • रिक्त क्रम किंवा संग्रह:',(),[],{},set(),range(0)

इतर सर्व मूल्ये सत्य मानली जातात.

फंक्शन bool() ऑब्जेक्टचे बुलियन व्हॅल्यू मिळवण्यासाठी वापरले जाऊ शकते. लक्षात ठेवा की स्ट्रिंग ‘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’ किंवा ‘false’ असत्य म्हणून हाताळण्यासाठी distutils.util.strtobool() वापरा.

and,orही रिटर्न व्हॅल्यूज bool प्रकारची असणे आवश्यक नाही.

येथे bool प्रकाराशिवाय इतर ऑब्जेक्टचे उदाहरण आहे, प्रत्येक ऑपरेटरचा परिणाम अंकीय मूल्यावर दर्शवितो.

x = 10  # True
y = 0  # False

print(x and y)
# 0

print(x or y)
# 10

print(not x)
# False

जसे तुम्ही वरील उदाहरणावरून पाहू शकता, आणि आणि किंवा Python मध्ये bool प्रकाराचे खरे किंवा खोटे परत करत नाहीत, परंतु ते खरे की खोटे यावर अवलंबून डावीकडे किंवा उजवीकडे मूल्य परत करतात. उदाहरण संख्यात्मक आहे, परंतु तेच इतर प्रकार जसे की स्ट्रिंग आणि सूचींना लागू होते. योगायोगाने, bool प्रकाराचे खरे किंवा खोटे परत येत नाही.

आणि आणि किंवा च्या परताव्याच्या मूल्यांच्या व्याख्या खालीलप्रमाणे आहेत.

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

जेव्हा डाव्या आणि उजव्या अभिव्यक्तींची मूल्ये सत्य आणि असत्य स्वतंत्रपणे असतात, तेव्हा परतीची मूल्ये समजणे सोपे असते. दुसरीकडे, दोन्ही खरे असल्यास किंवा दोन्ही खोटे असल्यास, ऑर्डरनुसार परतावा मूल्य भिन्न असेल.

जर तुम्ही इफ स्टेटमेंट इ. मध्ये सशर्त अभिव्यक्ती म्हणून वापरत असाल, तर परिणाम बुलियन व्हॅल्यू म्हणून ठरवला जातो आणि त्यावर प्रक्रिया केली जाते, त्यामुळे तुम्हाला त्याबद्दल काळजी करण्याची गरज नाही, परंतु पुढील प्रक्रियेसाठी तुम्ही रिटर्न व्हॅल्यू वापरल्यास, तुम्ही काळजी घेणे आवश्यक आहे.

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