Paano magsulat ng mga kondisyong sangay na may mga pahayag na if sa Python

Negosyo

Ipaliwanag ang conditional branching na may mga if statement sa Python.

  • Mga pangunahing kaalaman sa mga pahayag na if (if, elif, else)
  • Tukuyin ang mga kundisyon sa mga operator ng paghahambing, atbp.
  • Tukuyin ang mga kundisyon ayon sa numero, listahan, atbp.
  • Tumukoy ng maraming kundisyon o negasyon sa mga lohikal na operator (at, o, hindi)
  • Mga kondisyong expression sa mga bagong linya at maraming linya

Mayroon ding ternary operator na naglalarawan ng conditional branch sa isang linya. Tingnan ang sumusunod na artikulo.

Mga pangunahing kaalaman sa mga pahayag na if (if, elif, else)

Ang pangunahing anyo ng pahayag na kung ay ang mga sumusunod

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.`

Ang “elif” ay tumutugma sa “else if” sa C at iba pang mga wika, at maaaring mayroong anumang bilang ng “elifs”.

Kung mayroon lamang isang kondisyon na pagpapahayag o pagproseso kapag hindi kinakailangan ang false, ang “elif” at “else” na mga bloke ay maaaring tanggalin.

Tukuyin ang mga kundisyon sa mga operator ng paghahambing, atbp.

Tukuyin ang kundisyon na may operasyon na nagbabalik ng uri ng bool (true, false), gaya ng operator ng paghahambing.

Ang mga operator ng paghahambing ng Python ay ang mga sumusunod

operatorresulta
x < ytotoo kung ang x ay mas mababa sa y
x <= ytotoo kung ang x ay mas mababa sa o katumbas ng y
x > ytotoo kung ang x ay mas malaki kaysa sa y
x >= ytotoo kung ang x ay mas malaki sa o katumbas ng y
x == ytrue kung ang mga halaga ng x at y ay pantay
x != ytrue kung ang mga halaga ng x at y ay hindi pantayx is ytotoo kung ang x at y ay iisang bagayx is not ytotoo kung ang x at y ay hindi magkaparehong bagayx in ytotoo kung ang x ay nakapaloob sa yx not in ytotoo kung ang x ay hindi nakapaloob sa y

Halimbawa. Para sa kaginhawahan, ito ay tinukoy bilang isang function na may def statement.

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

Ang mga sumusunod ay maaaring isulat sa paraang natatangi sa Python. Tingnan ang sumusunod na artikulo para sa mga detalye.
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!
  • !=

Ang nasa itaas ay isang paghahambing ng mga halaga; upang ihambing ang mga pagkakakilanlan ng bagay, gamitin ang sumusunod

  • is
  • is not

Halimbawa, kapag naghahambing ng isang integer at isang floating-point na numero, ang “==” ay nagbabalik ng true kung ang mga halaga ay katumbas, ngunit ang “ay” ay nagbabalik ng false dahil ang mga ito ay magkaibang mga bagay.

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

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

print(i == f)
# True

print(i is f)
# False

Posible ring gawin ang kundisyon kung ang isang listahan o isang string ay naglalaman ng isang partikular na elemento (character).

  • in:isama
  • not in:hindi kasama
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

Tukuyin ang mga kundisyon ayon sa numero, listahan, atbp.

Ang conditional expression ng isang if statement ay maaaring isang numero, listahan, o iba pang object na hindi uri ng bool (true, false).

if 10:
    print('True')
# True

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

Sa conditional expression ng isang Python if statement, ang mga sumusunod na object ay itinuturing na false.

Ang mga numerong kumakatawan sa zero, walang laman na mga string, mga listahan, atbp. ay itinuturing na mali; lahat ng iba ay itinuturing na totoo.

Kung paano hinuhusgahan ang bagay ay maaaring masuri gamit ang bool().

print(bool(10))
# True

print(bool(0.0))
# False

print(bool([]))
# False

print(bool('False'))
# True

Ito ay maaaring gamitin upang isulat lamang ang proseso kapag ang listahan ay walang laman, halimbawa.

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

Tandaan na ang string na ‘False’ ay magiging totoo din, dahil tulad ng ipinapakita sa halimbawa sa itaas, anumang string na walang laman sa string ay magiging totoo.’ Upang i-convert ang isang partikular na string gaya ng ‘True’ o ‘False’ sa 1,0, gamitin ang strtobool() sa distutils.util module.

Tumukoy ng maraming kundisyon o negasyon sa mga lohikal na operator (at, o, hindi)

Ang mga lohikal na operator (at, o, hindi) ay maaaring gamitin upang pangasiwaan ang lohikal na pagkakaugnay, lohikal na disjunction, at negasyon ng maraming kundisyon.

operator(Resulta (sa conditional expression ng isang if statement)
x and ytotoo kung pareho ang x at y ay totoo
x or ytotoo kung ang alinman sa x o y ay totoo
not xmali kung tama ang x, tama kung mali ang x
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

Sa katunayan, ang “x at y” at “x o y” ay hindi nagbabalik ng Tama o Mali, ngunit alinman sa x o y. Hangga’t ginagamit ang mga ito sa mga conditional na expression sa mga pahayag na if, hindi na kailangang mag-alala tungkol sa mga ito, dahil sinusuri nila ang alinman sa Tama o Mali. Tingnan ang sumusunod na artikulo para sa mga detalye.

Posibleng gamitin at at o higit sa isang beses.

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

Mga kondisyong expression sa mga bagong linya at maraming linya

Kapag maraming conditional na expression ang ginagamit sa pamamagitan ng pagkonekta sa kanila ng “at” o “o” at ang bawat linya ay nagiging mahaba, minsan ay kinakailangan na putulin ang conditional expression at isulat ito sa maraming linya.

Ang isang line break ay maaaring gawin sa pamamagitan ng paggamit ng backslash o sa pamamagitan ng paglalagay ng buong linya sa mga panaklong.

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

Maaari kang gumamit ng backslash upang maputol ang isang linya nang maraming beses hangga’t gusto mo. Gayundin, maaari mong putulin ang isang linya kahit ilang beses sa loob ng mga panaklong. Walang limitasyon sa indentation.

Tandaan na ito ay isang pamamaraan na maaaring gamitin saanman sa Python code, hindi lamang sa if statements.