Python nyedhiyakake operator logis kanggo nindakake operasi logis (Boolean).(and
,or
,not
)
Iki digunakake kanggo njlèntrèhaké hubungan antarane sawetara kahanan ing statement if.
Bagian iki njlèntrèhaké ing ngisor iki.
- prapatan:
and
- nambah logis:
or
- nolak:
not
and
,or
,not
Prioritas operator
Kajaba iku, titik ing ngisor iki diterangake minangka ati-ati.
- Operator logis kanggo obyek saka jinis liyane saka bool
and
,or
Nilai bali iki ora kudu jinis bool.- Sirkuit pendek (evaluasi sirkuit cendhak)
prapatan:and
lan ngasilake produk logis saka rong nilai.
print(True and True)
# True
print(True and False)
# False
print(False and True)
# False
print(False and False)
# False
Nyatane, asring digunakake ora kanggo bener utawa salah, nanging kanggo ekspresi kondisional nggunakake operator comparison. Kanggo informasi sampeyan, operator perbandingan kaya ing ngisor iki.
<
>
a = 10
print(0 < a)
# True
print(a < 100)
# True
print(0 < a and a < 100)
# True
lan bisa dirangkep kaya ing ngisor iki.
print(0 < a < 100)
# True
nambah logis:or
utawa ngasilake logis UTAWA saka rong nilai.
print(True or True)
# True
print(True or False)
# True
print(False or True)
# True
print(False or False)
# False
nolak:not
ora” ngasilake negasi nilai; bener lan salah dibalik.
print(not True)
# False
print(not False)
# True
and,or,notPrioritas operator
Urutan precedence operator logis iki minangka nderek: ora paling dhuwur.
not
and
or
Ing conto kode ing ngisor iki, ekspresi ing ndhuwur diinterpretasikake kaya ing ngisor iki. Amarga ora ana masalah karo kurung ekstra, bisa uga luwih gampang kanggo njlèntrèhaké kanthi jelas ing kasus kaya conto iki.
print(True or True and False)
# True
print(True or (True and False))
# True
Yen sampeyan pengin operate utawa sadurunge lan, nggunakake kurung ().
print((True or True) and False)
# False
<
,>
Operator perbandingan iki duwe precedence sing luwih dhuwur tinimbang ora. Mulane, tanda kurung ora perlu kanggo saben operasi perbandingan, kaya sing kedadeyan ing conto ing ndhuwur.
print(0 < a and a < 100)
# True
Deleng dokumentasi resmi ing ngisor iki kanggo ringkesan precedence operator ing Python.
Operator logis kanggo obyek saka jinis liyane saka bool
With these logical operators, not only bool types (true, false), but also numbers, strings, lists, etc. are processed as boolean values.
Objek ing ngisor iki dianggep palsu ing operasi logika Python.
- Konstanta ditetepake palsu:
None
,false
- Zero ing jinis numerik:
0
,0
,0j
,Decimal(0)
,Fraction(0, 1)
- Urutan utawa koleksi kosong:
'
,()
,[]
,{}
,set()
,range(0)
Kabeh nilai liyane dianggep bener.
Fungsi bool () bisa digunakake kanggo entuk nilai boolean saka obyek. Elinga yen string ‘0’ utawa ‘Salah’ dianggep bener.
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
Kanggo nangani ‘0’ utawa ‘palsu’ ing senar minangka palsu, nggunakake distutils.util.strtobool ().
and,orNilai bali iki ora kudu jinis bool.
Punika conto obyek liyane saka jinis bool, nuduhake asil saben operator ing Nilai numerik.
x = 10 # True
y = 0 # False
print(x and y)
# 0
print(x or y)
# 10
print(not x)
# False
Nalika sampeyan bisa ndeleng saka conto ing ndhuwur, lan utawa ing Python ora bali bener utawa salah saka jinis bool, nanging bali Nilai ing sisih kiwa utawa tengen gumantung apa iku bener utawa salah. Conto iku numerik, nanging padha ditrapake kanggo jinis liyane kayata strings lan dhaptar. Incidentally, ora ngasilake bener utawa salah saka jinis bool.
Dhéfinisi nilai bali saka lan lan utawa kaya ing ngisor iki.
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
Nalika nilai ekspresi kiwa lan tengen bener lan salah kanthi kapisah, nilai bali gampang dingerteni. Ing tangan liyane, yen loro bener utawa loro-lorone iku palsu, Nilai bali bakal beda-beda gumantung ing urutan.
Yen sampeyan nggunakake minangka ekspresi kondisional ing statement if, etc., asil kasebut dianggep minangka nilai boolean lan diproses, dadi sampeyan ora perlu kuwatir, nanging yen sampeyan nggunakake nilai bali kanggo proses luwih lanjut, sampeyan kudu ngati-ati.
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
Yen sampeyan pengin dianggep bener utawa salah, sampeyan bisa nindakake kaya ing conto pungkasan.bool(x and y)
Nilai bali saka lan lan utawa rangkuman ing tabel ing ngisor iki.
x | y | x and y | x or y |
---|---|---|---|
true | false | y | x |
false | true | x | y |
true | true | y | x |
false | false | x | y |
Sirkuit pendek (evaluasi sirkuit cendhak)
Nalika sampeyan bisa ndeleng saka tabel ing ndhuwur, yen x salah ing x lan y, utawa yen x bener ing x utawa y, Nilai bali bakal x preduli saka Nilai saka y.
Ing kasus kaya mengkono, y ora dievaluasi.
and
,or
Elinga yen sampeyan nelpon fungsi utawa cara ing sisih tengen pangolahan iki kanggo nindakake sawetara Processing, proses bisa uga ora kaleksanan gumantung ing asil ing sisih kiwa.
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