Waendeshaji kimantiki wa Python na, au, na si (kiunganishi cha kimantiki, mgawanyiko, kukanusha)

Biashara

Python hutoa waendeshaji kimantiki kufanya shughuli za kimantiki (Boolean).(and,or,not)
Inatumika kuelezea uhusiano kati ya hali nyingi katika taarifa kama.

Sehemu hii inaeleza yafuatayo.

  • makutano:and
  • kuongeza mantiki:or
  • kukataa:not
  • and,or,notUtangulizi wa waendeshaji

Kwa kuongeza, mambo yafuatayo yanafafanuliwa kama tahadhari.

  • Waendeshaji wa kimantiki kwa vitu vya aina tofauti na bool
  • and,orThamani hizi za kurejesha si lazima ziwe za aina ya bool.
  • Mzunguko mfupi (tathmini ya mzunguko mfupi)

makutano:and

na hurejesha bidhaa ya kimantiki ya thamani mbili.

print(True and True)
# True

print(True and False)
# False

print(False and True)
# False

print(False and False)
# False

Kwa kweli, mara nyingi hutumiwa si kwa kweli au uongo, lakini kwa maneno ya masharti kwa kutumia waendeshaji kulinganisha. Kwa taarifa yako, waendeshaji kulinganisha ni kama ifuatavyo.

  • <
  • >
a = 10
print(0 < a)
# True

print(a < 100)
# True

print(0 < a and a < 100)
# True

na inaweza kuunganishwa kama ifuatavyo.

print(0 < a < 100)
# True

kuongeza mantiki:or

au inarejesha kimantiki AU ya thamani hizo mbili.

print(True or True)
# True

print(True or False)
# True

print(False or True)
# True

print(False or False)
# False

kukataa:not

not” inarejesha ukanushaji wa thamani; kweli na uongo hubadilishwa.

print(not True)
# False

print(not False)
# True

and,or,notUtangulizi wa waendeshaji

Mpangilio wa utangulizi wa waendeshaji hawa wa kimantiki ni kama ifuatavyo: sio ya juu zaidi.

  1. not
  2. and
  3. or

Katika nambari ifuatayo ya sampuli, usemi ulio hapo juu unafasiriwa kana kwamba ndio ulio hapa chini. Kwa kuwa hakuna tatizo na mabano ya ziada, inaweza kuwa rahisi kueleza waziwazi katika kesi kama mfano huu.

print(True or True and False)
# True

print(True or (True and False))
# True

Ikiwa unataka kufanya kazi au kabla na, tumia mabano ().

print((True or True) and False)
# False

<,>Waendeshaji hawa wa kulinganisha wana utangulizi wa juu zaidi kuliko sio. Kwa hivyo, mabano sio lazima kwa kila operesheni ya kulinganisha, kama ilivyokuwa katika mfano hapo juu.

print(0 < a and a < 100)
# True

Tazama hati rasmi hapa chini kwa muhtasari wa utangulizi wa waendeshaji katika Python.

Waendeshaji wa kimantiki kwa vitu vya aina tofauti na bool

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

Vitu vifuatavyo vinachukuliwa kuwa vya uwongo katika shughuli za kimantiki za Python.

  • Mara kwa mara hufafanuliwa kuwa uongo:None,false
  • Sifuri katika aina za nambari:0,0,0j,Decimal(0),Fraction(0, 1)
  • Mlolongo tupu au mkusanyiko:',(),[],{},set(),range(0)

Maadili mengine yote yanachukuliwa kuwa ya kweli.

Kazi bool() inaweza kutumika kupata thamani ya boolean ya kitu. Kumbuka kwamba kamba ‘0’ au ‘Uongo’ inachukuliwa kuwa kweli.

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

Ili kushughulikia ‘0’ au ‘sivyo’ katika mfuatano kama uongo, tumia distutils.util.strtobool().

and,orThamani hizi za kurejesha si lazima ziwe za aina ya bool.

Huu hapa ni mfano wa kitu kingine isipokuwa aina ya bool, inayoonyesha matokeo ya kila mwendeshaji kwa thamani ya nambari.

x = 10  # True
y = 0  # False

print(x and y)
# 0

print(x or y)
# 10

print(not x)
# False

Kama unavyoona kutoka kwa mfano hapo juu, na na au kwenye Python hairudishi ukweli au uwongo wa aina ya bool, lakini rudisha thamani iliyo upande wa kushoto au kulia kulingana na ikiwa ni kweli au si kweli. Mfano ni nambari, lakini hiyo hiyo inatumika kwa aina zingine kama vile safu na orodha. Kwa bahati mbaya, hairejeshi kweli au si kweli ya aina ya bool.

Ufafanuzi wa maadili ya kurejesha na na au ni kama ifuatavyo.

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

Wakati thamani za usemi wa kushoto na kulia ni kweli na si kweli kando, thamani za kurejesha ni rahisi kuelewa. Kwa upande mwingine, ikiwa zote mbili ni kweli au zote mbili ni za uwongo, thamani ya kurejesha itakuwa tofauti kulingana na mpangilio.

Ikiwa utaitumia kama usemi wa masharti katika taarifa ya if, n.k., matokeo yanahukumiwa kama thamani ya boolean na kuchakatwa, kwa hivyo hauitaji kuwa na wasiwasi juu yake, lakini ikiwa unatumia dhamana ya kurudi kwa usindikaji zaidi, utafanya. haja ya kuwa makini.

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

Ikiwa unataka kuichukulia kama kweli au uwongo, unaweza kufanya kama katika mfano wa mwisho.
bool(x and y)

Thamani za urejeshaji na na au zimefupishwa katika jedwali hapa chini.

xyx and yx or y
truefalseyx
falsetruexy
truetrueyx
falsefalsexy

Mzunguko mfupi (tathmini ya mzunguko mfupi)

Kama unavyoona kwenye jedwali lililo hapo juu, ikiwa x si kweli katika x na y, au ikiwa x ni kweli katika x au y, thamani ya kurudi itakuwa x bila kujali thamani ya y.

Katika hali kama hiyo, y haijatathminiwa.

and,orKumbuka kwamba ukiita chaguo za kukokotoa au mbinu iliyo upande wa kulia wa michakato hii kufanya uchakataji, huenda mchakato huo usitekelezwe kulingana na matokeo ya upande wa kushoto.

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