Jinsi ya kuandika matawi ya masharti na ikiwa taarifa katika Python

Biashara

Eleza matawi ya masharti na if taarifa kwenye Python.

  • Misingi ya kama kauli (kama, elif, vinginevyo)
  • Taja masharti na waendeshaji kulinganisha, nk.
  • Taja hali kwa nambari, orodha, nk.
  • Bainisha hali nyingi au kanusho na waendeshaji kimantiki (na, au, la)
  • Maneno ya masharti kwenye mistari mipya na mistari mingi

Pia kuna opereta wa ternary ambayo inaelezea tawi la masharti katika mstari mmoja. Tazama makala ifuatayo.

Misingi ya kama kauli (kama, elif, vinginevyo)

Aina ya msingi ya taarifa ya if ni kama ifuatavyo

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” inalingana na “mwingine ikiwa” katika C na lugha zingine, na kunaweza kuwa na idadi yoyote ya “elifs”.

Iwapo kuna usemi mmoja tu wa masharti au usindikaji wakati uwongo sio lazima, vizuizi vya “elif” na “vingine” vinaweza kuachwa.

Taja masharti na waendeshaji kulinganisha, nk.

Bainisha hali kwa operesheni inayorejesha aina ya bool (kweli, si kweli), kama vile opereta linganishi.

Waendeshaji wa kulinganisha wa Python ni kama ifuatavyo

mwendeshajimatokeo
x < ykweli ikiwa x ni chini ya y
x <= ykweli ikiwa x ni chini ya au sawa na y
x > ykweli ikiwa x ni kubwa kuliko y
x >= ykweli ikiwa x ni kubwa kuliko au sawa na y
x == ykweli ikiwa maadili ya x na y ni sawa
x != ykweli ikiwa thamani za x na y si sawax is ykweli ikiwa x na y ni kitu kimojax is not ykweli ikiwa x na y sio kitu sawax in ykweli ikiwa x iko katika yx not in ykweli ikiwa x haijajumuishwa katika y

Mfano. Kwa urahisi, inafafanuliwa kama kazi na taarifa ya 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

Ifuatayo inaweza kuandikwa kwa njia ambayo ni ya kipekee kwa Python. Tazama makala ifuatayo kwa maelezo zaidi.
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!
  • !=

Hapo juu ni ulinganisho wa maadili; kulinganisha vitambulisho vya kitu, tumia zifuatazo

  • is
  • is not

Kwa mfano, unapolinganisha nambari kamili na nambari ya sehemu inayoelea, “==” hurejesha kweli ikiwa thamani ni sawa, lakini “ni” inarejesha sivyo kwa sababu ni vitu tofauti.

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

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

print(i == f)
# True

print(i is f)
# False

Pia inawezekana kufanya hali iwe orodha au kamba ina kipengele maalum (tabia).

  • in:ni pamoja na
  • not in:bila kujumuisha
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

Taja hali kwa nambari, orodha, nk.

Usemi wa masharti wa taarifa ya if unaweza kuwa nambari, orodha, au kitu kingine ambacho si cha aina ya bool (kweli, si kweli).

if 10:
    print('True')
# True

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

Katika usemi wa masharti wa Python ikiwa taarifa, vitu vifuatavyo vinachukuliwa kuwa vya uwongo.

Nambari zinazowakilisha sifuri, mifuatano tupu, orodha, n.k. zinachukuliwa kuwa si za kweli; mengine yote yanachukuliwa kuwa ya kweli.

Jinsi kitu kinahukumiwa kinaweza kukaguliwa na bool().

print(bool(10))
# True

print(bool(0.0))
# False

print(bool([]))
# False

print(bool('False'))
# True

Hii inaweza kutumika kwa urahisi kuandika mchakato wakati orodha ni tupu, kwa mfano.

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

Kumbuka kwamba mfuatano wa ‘Uongo’ pia utakuwa wa kweli, kwa sababu kama inavyoonyeshwa katika mfano hapo juu, mfuatano wowote ambao hauna tupu kwenye mfuatano utakuwa wa kweli.’ Ili kubadilisha mfuatano mahususi kama vile ‘Kweli’ au ‘Uongo’ hadi 1,0, tumia strtobool() katika moduli ya distutils.util.

Bainisha hali nyingi au kanusho na waendeshaji kimantiki (na, au, la)

Viendeshaji kimantiki (na, au, au, sivyo) vinaweza kutumika kushughulikia muunganisho wa kimantiki, mtengano wa kimantiki, na ukanushaji wa hali nyingi.

mwendeshaji(matokeo (katika usemi wa masharti wa kauli if)
x and ykweli ikiwa zote mbili x na y ni kweli
x or ykweli ikiwa ama x au y ni kweli
not xuongo ikiwa x ni kweli, kweli ikiwa x ni uongo
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

Kwa kweli, “x na y” na “x au y” hazirudishi Kweli au Si kweli, lakini ama x au y. Alimradi zinatumika katika misemo ya masharti katika ikiwa kauli, hakuna haja ya kuwa na wasiwasi kuzihusu, kwa kuwa zinatathmini ama Kweli au Si kweli. Tazama makala ifuatayo kwa maelezo zaidi.

Inawezekana kutumia na na au zaidi ya mara moja.

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

Maneno ya masharti kwenye mistari mipya na mistari mingi

Wakati maneno mengi ya masharti yanatumiwa kwa kuunganisha na “na” au “au” na kila mstari unakuwa mrefu, wakati mwingine ni muhimu kuvunja usemi wa masharti na kuandika kwenye mistari mingi.

Uvunjaji wa mstari unaweza kufanywa kwa kutumia backslash au kwa kuifunga mstari mzima kwenye mabano.

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

Unaweza kutumia backslash kuvunja mstari mara nyingi kama wewe kama. Vivyo hivyo, unaweza kuvunja mstari mara kadhaa ndani ya mabano. Hakuna kikomo cha ujongezaji.

Kumbuka kuwa hii ni mbinu ambayo inaweza kutumika mahali popote kwenye nambari ya Python, sio tu ikiwa taarifa.

Copied title and URL