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ऑपरेटर प्राधान्य
या लॉजिकल ऑपरेटरच्या अग्रक्रमाचा क्रम खालीलप्रमाणे आहे: नाही सर्वोच्च आहे.
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
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)
आणि आणि किंवा ची परतावा मूल्ये खालील तक्त्यामध्ये सारांशित केली आहेत.
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