Hvernig á að skrifa skilyrtar greinar með if yfirlýsingum í Python

Viðskipti

Útskýrðu skilyrta greiningu með if setningum í Python.

  • Grunnatriði ef staðhæfingar (ef, elif, annað)
  • Tilgreindu skilyrði með samanburðarfyrirtækjum o.s.frv.
  • Tilgreina skilyrði eftir fjölda, lista o.s.frv.
  • Tilgreindu mörg skilyrði eða neitanir með rökrænum aðgerðum (og, eða, ekki)
  • Skilyrt tjáning á nýjum línum og mörgum línum

Það er líka þrískiptur rekstraraðili sem lýsir skilyrtri grein í einni línu. Sjá eftirfarandi grein.

Grunnatriði ef staðhæfingar (ef, elif, annað)

Grunnform ef yfirlýsingarinnar er sem hér segir

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“ samsvarar „annað ef“ í C og öðrum tungumálum, og það getur verið hvaða fjöldi „elifs“.

Ef það er aðeins ein skilyrt tjáning eða vinnsla þegar false er ekki nauðsynlegt, er hægt að sleppa „elif“ og „else“ kubbunum.

Tilgreindu skilyrði með samanburðarfyrirtækjum o.s.frv.

Tilgreindu ástandið með aðgerð sem skilar bool tegund (satt, ósatt), eins og samanburðaraðgerð.

Python samanburðaraðgerðir eru sem hér segir

rekstraraðiliniðurstöðu
x < ysatt ef x er minna en y
x <= ysatt ef x er minna en eða jafnt og y
x > ysatt ef x er stærra en y
x >= ysatt ef x er stærra en eða jafnt og y
x == ysatt ef x og y gildi eru jöfn
x != ysatt ef x og y gildi eru ekki jöfnx is ysatt ef x og y eru sami hluturinnx is not ysatt ef x og y eru ekki sami hluturinnx in ysatt ef x er í yx not in ysatt ef x er ekki innifalið í y

Dæmi. Til hægðarauka er það skilgreint sem fall með def yfirlýsingunni.

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

Hægt er að skrifa eftirfarandi á þann hátt sem er einstakur fyrir Python. Sjá eftirfarandi grein fyrir frekari upplýsingar.
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!
  • !=

Ofangreint er samanburður á gildum; til að bera saman auðkenni hlutar, notaðu eftirfarandi

  • is
  • is not

Til dæmis, þegar borin er saman heiltala og fljótandi tölu, skilar „==“ satt ef gildin eru jafngild, en „er“ skilar ósatt vegna þess að þetta eru mismunandi hlutir.

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

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

print(i == f)
# True

print(i is f)
# False

Einnig er hægt að setja það skilyrði hvort listi eða strengur innihaldi tiltekið stak (staf).

  • in:fela í sér
  • not in:ekki meðtöldum
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

Tilgreina skilyrði eftir fjölda, lista o.s.frv.

Skilyrt tjáning if-setningar getur verið tala, listi eða annar hlutur sem er ekki af gerðinni bool (satt, ósatt).

if 10:
    print('True')
# True

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

Í skilyrtri tjáningu Python if staðhæfingar eru eftirfarandi hlutir taldir rangir.

Tölur sem tákna núll, tóma strengi, lista o.s.frv. eru taldar rangar; allir aðrir teljast sannir.

Hvernig hluturinn er dæmdur er hægt að athuga með bool().

print(bool(10))
# True

print(bool(0.0))
# False

print(bool([]))
# False

print(bool('False'))
# True

Þetta er hægt að nota til að einfaldlega skrifa ferlið þegar listinn er tómur, til dæmis.

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

Athugaðu að strengurinn ‘False’ mun einnig vera satt, því eins og sýnt er í dæminu hér að ofan, þá verða allir strengir sem eru ekki tómir í strengnum sannir.’ Til að breyta tilteknum streng eins og ‘True’ eða ‘False’ í 1,0, notaðu strtobool() í distutils.util einingunni.

Tilgreindu mörg skilyrði eða neitanir með rökrænum aðgerðum (og, eða, ekki)

Hægt er að nota rökrænu rekstraraðilana (og, eða ekki) til að meðhöndla rökræna samtengingu, rökræna aðgreiningu og afneitun margra skilyrða.

rekstraraðili(Niðurstaða (í skilyrtri tjáningu ef staðhæfingar)
x and ysatt ef bæði x og y eru satt
x or ysatt ef annað hvort x eða y er satt
not xósatt ef x er satt, satt ef x er ósatt
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

Reyndar skila „x og y“ og „x eða y“ ekki satt eða ósatt, heldur annað hvort x eða y. Svo lengi sem þær eru notaðar í skilyrtum orðatiltækjum í if staðhæfingum er engin þörf á að hafa áhyggjur af þeim, þar sem þær eru annað hvort sannar eða ósattar. Sjá eftirfarandi grein fyrir frekari upplýsingar.

Það er hægt að nota og og eða oftar en einu sinni.

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

Skilyrt tjáning á nýjum línum og mörgum línum

Þegar mörg skilyrt orðatiltæki eru notuð með því að tengja þau við „og“ eða „eða“ og hver lína verður löng, er stundum nauðsynlegt að rjúfa skilyrtu tjáninguna og skrifa hana á margar línur.

Hægt er að gera línuskil með því að nota skástrik eða með því að setja alla línuna innan sviga.

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

Þú getur notað afturskák til að brjóta línu eins oft og þú vilt. Sömuleiðis geturðu brotið línu eins oft innan sviga. Það eru engin inndráttarmörk.

Athugaðu að þetta er tækni sem hægt er að nota hvar sem er í Python kóða, ekki bara í if setningum.