पाइथनले तार्किक अपरेटरहरूलाई तार्किक (बुलियन) कार्यहरू गर्न प्रदान गर्दछ।(and,or,not)
यसलाई if कथनमा बहु सर्तहरू बीचको सम्बन्ध वर्णन गर्न प्रयोग गरिन्छ।
यस खण्डले निम्न वर्णन गर्दछ।
- प्रतिच्छेदन:
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अपरेटर प्राथमिकता
यी तार्किक अपरेटरहरूको प्राथमिकताको क्रम निम्नानुसार छ: उच्चतम होइन।
notandor
निम्न नमूना कोडमा, माथिको अभिव्यक्तिलाई तलको जस्तै व्याख्या गरिएको छ। अतिरिक्त कोष्ठकहरूसँग कुनै समस्या नभएकोले, यो उदाहरण जस्ता केसहरूमा स्पष्ट रूपमा वर्णन गर्न सजिलो हुन सक्छ।
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
पाइथनमा अपरेटर प्राथमिकताको सारांशको लागि तलको आधिकारिक कागजात हेर्नुहोस्।
bool बाहेक अन्य प्रकारका वस्तुहरूको लागि तार्किक अपरेटरहरू
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)
अन्य सबै मानहरू सत्य मानिन्छन्।
प्रकार्य bool() वस्तुको बुलियन मान प्राप्त गर्न प्रयोग गर्न सकिन्छ। याद गर्नुहोस् कि स्ट्रिङ ‘0’ वा ‘False’ लाई सत्य मानिन्छ।
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
तपाईले माथिको उदाहरणबाट देख्न सक्नुहुन्छ, र र वा पाइथनमा 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
जब बायाँ र दायाँ अभिव्यक्तिका मानहरू सत्य र गलत अलग-अलग हुन्छन्, फिर्ता मानहरू बुझ्न सजिलो हुन्छ। अर्कोतर्फ, यदि दुवै सत्य वा दुवै गलत छन् भने, फिर्ती मूल्य अर्डरको आधारमा फरक हुनेछ।
यदि तपाइँ यसलाई यदि कथन, इत्यादिमा सशर्त अभिव्यक्तिको रूपमा प्रयोग गर्नुहुन्छ भने, नतिजालाई बुलियन मानको रूपमा न्याय गरिन्छ र प्रशोधन गरिन्छ, त्यसैले तपाइँले यसको ’boutमा चिन्ता लिनु पर्दैन, तर यदि तपाइँ थप प्रशोधनको लागि फिर्ती मान प्रयोग गर्नुहुन्छ भने, तपाइँ सावधान हुन आवश्यक छ।
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


