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înevan | netîce |
---|---|
x < y | rast e eger x ji y kêmtir be |
x <= y | rast e eger x ji y kêmtir an wekhev be |
x > y | rast e eger x ji y mezintir be |
x >= y | rast e eger x ji y mezintir an wekhev be |
x == y | rast e eger x û y nirx wekhev bin |
x != y
x is y
x is not y
x in y
x not in y
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
:linavxistinnot 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.
- Berdewam têne diyarkirin ku derew in:
None
,false
- Di tîpên hejmarî de sifir:
0
,0
,0j
,Decimal(0)
,Fraction(0, 1)
- Rêzeya vala an berhevokê:
'
,()
,[]
,{}
,set()
,range(0)
Truth Value Testing — Built-in Types — Python 3.10.4 Documentation
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 y | rast e eger her du x û y rast bin |
x or y | rast e eger x yan y rast be |
not x | xelet 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.