पाइथनको तार्किक अपरेटरहरू र, वा, र होइन (तार्किक संयोजन, विच्छेदन, अस्वीकार)

व्यापार

पाइथनले तार्किक अपरेटरहरूलाई तार्किक (बुलियन) कार्यहरू गर्न प्रदान गर्दछ।(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अपरेटर प्राथमिकता

यी तार्किक अपरेटरहरूको प्राथमिकताको क्रम निम्नानुसार छ: उच्चतम होइन।

  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

पाइथनमा अपरेटर प्राथमिकताको सारांशको लागि तलको आधिकारिक कागजात हेर्नुहोस्।

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)

फिर्ता मानहरू र र वा तलको तालिकामा संक्षेपित छन्।

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
Copied title and URL