Meriv çawa di Python de şaxên şertî bi daxuyaniyên if re dinivîse

Dikan

Di Python-ê de şaxkirina şertî bi îfadeyên if re rave bikin.

  • Bingehên gotinên heke (heke, elif, din)
  • Bi operatorên berhevdanê re şert û mercên diyar bikin, hwd.
  • Mercên ji hêla hejmar, navnîş, hwd ve diyar bikin.
  • Bi operatorên mentiqî (û, an, ne) pir şert û mercan diyar bikin
  • Li ser rêzikên nû û pir rêzikên bi şertê îfadeyan

Di heman demê de operatorek sêalî jî heye ku şaxek şertî di yek rêzê de diyar dike. Gotara jêrîn bibînin.

Bingehên gotinên heke (heke, elif, din)

Forma bingehîn a îfadeya if wiha ye

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” di C û zimanên din de bi “Eger din” re têkildar e û dibe ku hejmarek “elif” hebe.

Ger tenê yek biwêjek şertî an pêvajoyek hebe dema ku xelet ne hewce be, blokên “elif” û “else” dikarin werin derxistin.

Bi operatorên berhevdanê re şert û mercên diyar bikin, hwd.

Bi operasyonek ku celebek boolê (rast, xelet) vedigerîne, wek operatorek berhevdanê, şertê diyar bikin.

Operatorên berhevdana Python wiha ne

makînevannetîce
x < yrast e eger x ji y kêmtir be
x <= yrast e eger x ji y kêmtir an wekhev be
x > yrast e eger x ji y mezintir be
x >= yrast e eger x ji y mezintir an wekhev be
x == yrast e eger x û y nirx wekhev bin
x != yrast e eger nirxên x û y ne wekhev binx is yrast e eger x û y heman tişt binx is not yrast e eger x û y ne heman tişt binx in yrast e eger x di y de hebex not in yrast e eger x di y de nebe

Mînak. Ji bo rehetiyê, ew wekî fonksiyonek bi daxuyaniya def tê pênase kirin.

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

Ya jêrîn dikare bi rengek ku ji bo Python-ê yekta ye were nivîsandin. Ji bo hûragahiyan li gotara jêrîn binêre.
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!
  • !=

Li jor berawirdkirina nirxan e; ji bo berhevdana nasnameyên tiştan, jêrîn bikar bînin

  • is
  • is not

Mînakî, dema ku hejmareke yekjimar û jimareyek xala herikîn dide ber hev, “==” rast vedigere heke nirx hevwate bin, lê “is” xelet vedigerîne ji ber ku ew tiştên cihê ne.

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

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

print(i == f)
# True

print(i is f)
# False

Di heman demê de gengaz e ku meriv şertê bide ka navnîşek an rêzek hêmanek (karakterek) taybetî heye.

  • in:linavxistin
  • not in:ne tê de
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

Mercên ji hêla hejmar, navnîş, hwd ve diyar bikin.

Vebêja şertî ya if-ê dibe ku hejmarek, navnîş an tiştek din be ku ne ji celebê bool (rast, xelet) be.

if 10:
    print('True')
# True

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

Di vegotina şertî ya daxuyaniya Python if de, tiştên jêrîn xelet têne hesibandin.

Hejmarên ku sifir, rêzikên vala, lîste û hwd. hemî yên din rast têne hesibandin.

Tiştê çawa tê dadbarkirin dikare bi bool() were kontrol kirin.

print(bool(10))
# True

print(bool(0.0))
# False

print(bool([]))
# False

print(bool('False'))
# True

Ev dikare were bikar anîn ku ji bo nimûne gava ku navnîş vala ye pêvajoyê bi tenê binivîse.

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

Bala xwe bidinê ku rêzika ‘False’ jî dê rast be, ji ber ku di mînaka li jor de tê xuyang kirin, her rêzika ku di rêzê de vala nebe dê rast be.’ Ji bo veguhertina rêzikek taybetî ya wekî ‘Rast’ an ‘False’ bo 1,0, di modula distutils.util de strtobool() bikar bînin.

Bi operatorên mentiqî (û, an, ne) pir şert û mercan diyar bikin

Operatorên mentiqî (û, an, ne) dikarin ji bo birêvebirina hevbendiya mantiqî, veqetandina mentiqî, û înkarkirina şert û mercên pirjimar werin bikar anîn.

makînevan(Encam (di bilêvkirina şertî ya îfadeya if de)
x and yrast e eger her du x û y rast bin
x or yrast e eger x yan y rast be
not xxelet eger x rast be, rast eger x xelet be
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

Bi rastî, “x û y” û “x an y” ne rast an nerast, lê x an y vedigerin. Heya ku ew di îfadeyên şertî de di îfadeyên ger de têne bikar anîn, ne hewce ye ku meriv ji wan xemgîn bibe, ji ber ku ew rast an jî xelet dinirxînin. Ji bo hûragahiyan li gotara jêrîn binêre.

Ev gengaz e ku bikar bînin û û an jî bêtir ji carekê.

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

Li ser rêzikên nû û pir rêzikên bi şertê îfadeyan

Dema ku çend bêjeyên şertî bi girêdana wan bi “û” an “an” re têne bikar anîn û her rêzek dirêj dibe, carinan hewce ye ku bêjeya şertî bişkîne û li ser çend rêzan were nivîsandin.

Veqetandina xêzek bi karanîna paşkêşek an jî bi girtina tevahiya rêzê di nav parantezê de dikare were çêkirin.

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

Hûn dikarin paşkêşkek bikar bînin ku hûn çend caran xêzek bişkînin. Bi heman awayî, hûn dikarin rêzek çend caran di nav parantezê de bişkînin. Sînorê dakêşanê tune.

Bala xwe bidinê ku ev teknîkek e ku dikare li her derê koda Python were bikar anîn, ne tenê di daxuyaniyan de.

Copied title and URL