Shpjegoni degëzimin e kushtëzuar me deklaratat if në Python.
- Bazat e deklaratave if (if, elif, else)
- Specifikoni kushtet me operatorët e krahasimit, etj.
- Përcaktoni kushtet sipas numrit, listës, etj.
- Specifikoni kushte ose mohime të shumta me operatorë logjikë (dhe, ose, jo)
- Shprehjet e kushtëzuara në rreshta të rinj dhe rreshta të shumtë
Ekziston gjithashtu një operator tresh që përshkruan një degë të kushtëzuar në një rresht. Shihni artikullin e mëposhtëm.
- LIDHUR:Shkrimi i deklaratave if në një rresht me operatorin tresh të Python (operatori i kushtëzuar)
Bazat e deklaratave if (if, elif, else)
Forma bazë e deklaratës if është si më poshtë
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” korrespondon me “else if” në C dhe gjuhë të tjera, dhe mund të ketë çdo numër “elifs”.
Nëse ka vetëm një shprehje të kushtëzuar ose përpunim kur false nuk është e nevojshme, blloqet “elif” dhe “else” mund të hiqen.
Specifikoni kushtet me operatorët e krahasimit, etj.
Specifikoni kushtin me një operacion që kthen një lloj bool (true, false), siç është një operator krahasimi.
Operatorët e krahasimit të Python janë si më poshtë
operatori | rezultat |
---|---|
x < y | e vërtetë nëse x është më e vogël se y |
x <= y | e vërtetë nëse x është më e vogël ose e barabartë me y |
x > y | e vërtetë nëse x është më e madhe se y |
x >= y | e vërtetë nëse x është më e madhe ose e barabartë me y |
x == y | e vërtetë nëse vlerat x dhe y janë të barabarta |
x != y
x is y
x is not y
x in y
x not in y
Shembull. Për lehtësi, ai përcaktohet si një funksion me deklaratën 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
Më poshtë mund të shkruhet në një mënyrë që është unike për Python. Shihni artikullin e mëposhtëm për detaje.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!
!=
Sa më sipër është një krahasim i vlerave; për të krahasuar identitetet e objekteve, përdorni sa vijon
is
is not
Për shembull, kur krahasojmë një numër të plotë dhe një numër me pikë lundruese, “==” kthen true nëse vlerat janë ekuivalente, por “is” kthen false sepse janë objekte të ndryshme.
i = 10
print(type(i))
# <class 'int'>
f = 10.0
print(type(f))
# <class 'float'>
print(i == f)
# True
print(i is f)
# False
Është gjithashtu e mundur të vendoset kushti nëse një listë ose një varg përmban një element (karakter) specifik.
in
:përfshijnënot in
:duke mos përfshirë
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
Përcaktoni kushtet sipas numrit, listës, etj.
Shprehja e kushtëzuar e një deklarate if mund të jetë një numër, listë ose objekt tjetër që nuk është i tipit bool (true, false).
if 10:
print('True')
# True
if [0, 1, 2]:
print('True')
# True
Në shprehjen e kushtëzuar të një deklarate Python if, objektet e mëposhtme konsiderohen false.
- Konstantet e përcaktuara si false:
None
,false
- Zero në llojin numerik:
0
,0
,0j
,Decimal(0)
,Fraction(0, 1)
- Sekuencë ose koleksion bosh:
'
,()
,[]
,{}
,set()
,range(0)
Truth Value Testing — Built-in Types — Python 3.10.4 Documentation
Numrat që përfaqësojnë zero, vargjet boshe, listat, etj. konsiderohen të rreme; të gjitha të tjerat konsiderohen të vërteta.
Si vlerësohet objekti mund të kontrollohet me bool().
print(bool(10))
# True
print(bool(0.0))
# False
print(bool([]))
# False
print(bool('False'))
# True
Kjo mund të përdoret për të shkruar thjesht procesin kur lista është bosh, për shembull.
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
Vini re se vargu ‘False’ do të jetë gjithashtu i vërtetë, sepse siç tregohet në shembullin e mësipërm, çdo varg që nuk është bosh në varg do të jetë i vërtetë.’ Për të kthyer një varg specifik si ‘E vërtetë’ ose ‘E gabuar’ në 1,0, përdorni strtobool() në modulin distutils.util.
Specifikoni kushte ose mohime të shumta me operatorë logjikë (dhe, ose, jo)
Operatorët logjikë (dhe, ose, jo) mund të përdoren për të trajtuar lidhjen logjike, ndarjen logjike dhe mohimin e kushteve të shumta.
operatori | (Rezultati (në shprehjen e kushtëzuar të një deklarate if) |
---|---|
x and y | e vërtetë nëse edhe x edhe y janë të vërteta |
x or y | e vërtetë nëse x ose y janë të vërteta |
not x | false nëse x është e vërtetë, e vërtetë nëse x është e gabuar |
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
Në fakt, “x dhe y” dhe “x ose y” nuk kthehen e vërtetë ose e gabuar, por x ose y. Për sa kohë që ato përdoren në shprehjet e kushtëzuara në pohimet if, nuk ka nevojë të shqetësoheni për to, pasi ato vlerësohen si të vërtetë ose të gabuara. Shihni artikullin e mëposhtëm për detaje.
Është e mundur të përdoret dhe dhe ose më shumë se një herë.
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
Shprehjet e kushtëzuara në rreshta të rinj dhe rreshta të shumtë
Kur përdoren shprehje të shumta kushtore duke i lidhur ato me “dhe” ose “ose” dhe çdo rresht bëhet i gjatë, ndonjëherë është e nevojshme të thyhet shprehja e kushtëzuar dhe të shkruhet në rreshta të shumtë.
Një thyerje rreshti mund të bëhet duke përdorur një vijë të prapme ose duke mbyllur të gjithë rreshtin në kllapa.
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
Ju mund të përdorni një vijë të prapme për të thyer një vijë sa herë të doni. Po kështu, ju mund të thyeni një rresht çdo herë brenda kllapave. Nuk ka kufi për dhëmbëzimin.
Vini re se kjo është një teknikë që mund të përdoret kudo në kodin Python, jo vetëm në deklaratat if.