Operator logika Python lan, utawa, lan ora (konjungsi logis, disjungsi, negasi)

Bisnis

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,notPrioritas operator

Kajaba iku, titik ing ngisor iki diterangake minangka ati-ati.

  • Operator logis kanggo obyek saka jinis liyane saka bool
  • and,orNilai 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.

  1. not
  2. and
  3. 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.

xyx and yx or y
truefalseyx
falsetruexy
truetrueyx
falsefalsexy

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,orElinga 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