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
,not
Utangulizi wa waendeshaji
Kwa kuongeza, mambo yafuatayo yanafafanuliwa kama tahadhari.
- Waendeshaji wa kimantiki kwa vitu vya aina tofauti na bool
and
,or
Thamani 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.
not
and
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.
x | y | x and y | x or y |
---|---|---|---|
true | false | y | x |
false | true | x | y |
true | true | y | x |
false | false | x | y |
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
,or
Kumbuka 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