Kepiye carane nulis cabang kondisional karo pernyataan yen ing Python

Bisnis

Nerangake percabangan kondisional karo pernyataan yen ing Python.

  • Dasar saka pernyataan if (if, elif, else)
  • Nemtokake kahanan karo operator comparison, etc.
  • Nemtokake kahanan miturut nomer, dhaptar, lsp.
  • Nemtokake sawetara kahanan utawa negasi karo operator logis (lan, utawa, ora)
  • Ekspresi kondisional ing baris anyar lan pirang-pirang baris

Ana uga operator ternary sing nggambarake cabang kondisional ing siji baris. Waca artikel ing ngisor iki.

Dasar saka pernyataan if (if, elif, else)

Wujud dhasare pratelan yen kaya ing ngisor iki

if Conditional expression 1:
    `Processing to be performed if Expression 1 is True.`
elif Conditional expression 2:
    `Processing to be performed when expression 1 is false and expression 2 is true.`
elif Expression 3:
    `Process when expression 1 and 2 are false and expression 3 is true.`
...
else:
    `Processing when all conditionals are false.`

“elif” cocog karo “else if” ing C lan basa liyane, lan bisa uga ana sawetara “elif”.

Yen mung ana siji ekspresi utawa pangolahan kondisional nalika palsu ora perlu, blok “elif” lan “liyane” bisa diilangi.

Nemtokake kahanan karo operator comparison, etc.

Nemtokake kondisi karo operasi sing ngasilake jinis bool (bener, salah), kayata operator comparison.

operator comparison Python minangka nderek

operatorasil
x < ybener yen x kurang saka y
x <= ybener yen x kurang saka utawa padha karo y
x > ybener yen x luwih gedhe tinimbang y
x >= ybener yen x luwih gedhe utawa padha karo y
x == ybener yen nilai x lan y padha
x != ybener yen nilai x lan y ora padhax is ybener yen x lan y minangka obyek sing padhax is not ybener yen x lan y dudu obyek sing padhax in ybener yen x ana ing yx not in ybener yen x ora ana ing y

Tuladha. Kanggo penak, ditetepake minangka fungsi karo statement def.

def if_test(num):
    if num > 100:
        print('100 < num')
    elif num > 50:
        print('50 < num <= 100')
    elif num > 0:
        print('0 < num <= 50')
    elif num == 0:
        print('num == 0')
    else:
        print('num < 0')

if_test(1000)
# 100 < num

if_test(70)
# 50 < num <= 100

if_test(0)
# num == 0

if_test(-100)
# num < 0

Ing ngisor iki bisa ditulis kanthi cara sing unik kanggo Python. Deleng artikel ing ngisor iki kanggo rincian.
a < x < b

def if_test2(num):
    if 50 < num < 100:
        print('50 < num < 100')
    else:
        print('num <= 50 or num >= 100')

if_test2(70)
# 50 < num < 100

if_test2(0)
# num <= 50 or num >= 100
  • #ERROR!
  • !=

Ing ndhuwur minangka perbandingan nilai; kanggo mbandhingake identitas obyek, gunakake ing ngisor iki

  • is
  • is not

Contone, nalika mbandhingake integer lan nomer floating-point, “==” bali bener yen nilai padha, nanging “iku” bali palsu amarga padha obyek beda.

i = 10
print(type(i))
# <class 'int'>

f = 10.0
print(type(f))
# <class 'float'>

print(i == f)
# True

print(i is f)
# False

Sampeyan uga bisa nggawe kondisi apa dhaftar utawa senar ngemot unsur tartamtu (karakter).

  • in:kalebu
  • not in:ora kalebu
def if_test_in(s):
    if 'a' in s:
        print('a is in string')
    else:
        print('a is NOT in string')

if_test_in('apple')
# a is in string

if_test_in('melon')
# a is NOT in string

Nemtokake kahanan miturut nomer, dhaptar, lsp.

Ekspresi kondisional saka statement if bisa dadi nomer, dhaptar, utawa obyek liyane sing ora jinis bool (bener, salah).

if 10:
    print('True')
# True

if [0, 1, 2]:
    print('True')
# True

Ing ekspresi kondisional saka Python yen statement, obyek ing ngisor iki dianggep palsu.

Nomer sing makili nol, string kosong, dhaptar, lan liya-liyane dianggep palsu; kabeh liyane dianggep bener.

Carane obyek diadili bisa dicenthang karo bool ().

print(bool(10))
# True

print(bool(0.0))
# False

print(bool([]))
# False

print(bool('False'))
# True

Iki bisa digunakake kanggo mung nulis proses nalika dhaptar kosong, contone.

def if_test_list(l):
    if l:
        print('list is NOT empty')
    else:
        print('list is empty')

if_test_list([0, 1, 2])
# list is NOT empty

if_test_list([])
# list is empty

Elinga yen senar ‘Palsu’ uga bakal bener, amarga kaya sing dituduhake ing conto ing ndhuwur, senar sing ora kosong ing senar bakal bener.’ Kanggo ngowahi string tartamtu kayata ‘Bener’ utawa ‘Palsu’ kanggo 1,0, nggunakake strtobool () ing modul distutils.util.

Nemtokake sawetara kahanan utawa negasi karo operator logis (lan, utawa, ora)

Operator logis (lan, utawa, ora) bisa digunakake kanggo nangani konjungsi logis, disjungsi logis, lan negasi sawetara kondisi.

operator(Asil (ing ekspresi kondisional saka pernyataan if)
x and ybener yen loro x lan y bener
x or ybener yen x utawa y bener
not xsalah yen x bener, bener yen x salah
def if_test_and_not(num):
    if num >= 0 and not num % 2 == 0:
        print('num is positive odd')
    else:
        print('num is NOT positive odd')

if_test_and_not(5)
# num is positive odd

if_test_and_not(10)
# num is NOT positive odd

if_test_and_not(-10)
# num is NOT positive odd

Nyatane, “x lan y” lan “x utawa y” ora ngasilake Bener utawa Salah, nanging uga x utawa y. Anggere padha digunakake ing ungkapan kondisional ing yen statements, ana ora perlu sumelang ing bab mau, amarga padha ngevaluasi kanggo salah siji Bener utawa Palsu. Deleng artikel ing ngisor iki kanggo rincian.

Sampeyan bisa nggunakake lan lan utawa luwih saka sepisan.

def if_test_and_not_or(num):
    if num >= 0 and not num % 2 == 0 or num == -10:
        print('num is positive odd or -10')
    else:
        print('num is NOT positive odd or -10')

if_test_and_not_or(5)
# num is positive odd or -10

if_test_and_not_or(10)
# num is NOT positive odd or -10

if_test_and_not_or(-10)
# num is positive odd or -10

Ekspresi kondisional ing baris anyar lan pirang-pirang baris

Nalika sawetara ekspresi kondisional digunakake kanthi nyambungake karo “lan” utawa “utawa” lan saben baris dadi dawa, kadhangkala perlu ngilangi ekspresi kondisional lan nulis ing pirang-pirang baris.

A line break bisa digawe kanthi nggunakake backslash utawa nglampirake kabeh baris ing kurung.

def if_test_and_backslash(num):
    if num >= 0 \
       and not num % 2 == 0:
        print('num is positive odd')
    else:
        print('num is NOT positive odd')

if_test_and_backslash(5)
# num is positive odd

def if_test_and_brackets(num):
    if (num >= 0
        and not num % 2 == 0):
        print('num is positive odd')
    else:
        print('num is NOT positive odd')

if_test_and_brackets(5)
# num is positive odd

Sampeyan bisa nggunakake backslash kanggo break baris minangka kakehan sing disenengi. Kajaba iku, sampeyan bisa ngilangi garis kaping pirang-pirang ing kurung. Ora ana watesan indentasi.

Elinga yen iki technique sing bisa digunakake ing ngendi wae ing kode Python, ora mung ing yen statements.