Python-da if ifadələri ilə şərti budaqları necə yazmaq olar

Biznes

Python-da if ifadələri ilə şərti budaqlanmağı izah edin.

  • if ifadələrinin əsasları (if, elif, else)
  • Müqayisə operatorları ilə şərtləri müəyyənləşdirin və s.
  • Şərtləri nömrə, siyahı və s.
  • Məntiqi operatorlarla çoxlu şərtləri və ya inkarları göstərin (və ya, yox)
  • Yeni sətirlərdə və çoxlu sətirlərdə şərti ifadələr

Bir sətirdə şərti budaqı təsvir edən üçlü operator da var. Aşağıdakı məqaləyə baxın.

if ifadələrinin əsasları (if, elif, else)

if ifadəsinin əsas forması aşağıdakı kimidir

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” C və digər dillərdə “else if”ə uyğun gəlir və istənilən sayda “elif” ola bilər.

Yalnız bir şərti ifadə və ya false lazım olmadığı halda emal varsa, “elif” və “else” blokları buraxıla bilər.

Müqayisə operatorları ilə şərtləri müəyyənləşdirin və s.

Müqayisə operatoru kimi bool tipini (doğru, yanlış) qaytaran əməliyyatla şərti təyin edin.

Python müqayisə operatorları aşağıdakılardır

operatornəticə
x < ydoğrudur, əgər x y-dən kiçikdirsə
x <= ydoğrudur, əgər x y-dən kiçik və ya ona bərabərdirsə
x > ydoğrudur, əgər x y-dən böyükdürsə
x >= ydoğrudur, əgər x y-dən böyük və ya ona bərabərdirsə
x == yx və y qiymətləri bərabər olduqda doğrudur
x != yx və y qiymətləri bərabər deyilsə doğrudurx is ydoğrudur, əgər x və y eyni obyektdirsəx is not ydoğrudur, əgər x və y eyni obyekt deyilsəx in ydoğrudur, əgər x y-də olarsax not in ydoğrudur, əgər x y-də yoxdursa

Misal. Rahatlıq üçün def ifadəsi ilə funksiya kimi müəyyən edilmişdir.

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

Aşağıdakılar Python-a xas olan şəkildə yazıla bilər. Təfərrüatlar üçün aşağıdakı məqaləyə baxın.
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!
  • !=

Yuxarıdakılar dəyərlərin müqayisəsidir; obyekt şəxsiyyətlərini müqayisə etmək üçün aşağıdakılardan istifadə edin

  • is
  • is not

Məsələn, tam ədədi və üzən nöqtəli ədədi müqayisə edərkən, dəyərlər ekvivalent olduqda “==” doğru, lakin fərqli obyektlər olduğu üçün “is” yalanı qaytarır.

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

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

print(i == f)
# True

print(i is f)
# False

Siyahının və ya sətrin müəyyən elementin (simvol) olub-olmamasını şərtləndirmək də mümkündür.

  • in:daxildir
  • not in:daxil deyil
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

Şərtləri nömrə, siyahı və s.

if ifadəsinin şərti ifadəsi nömrə, siyahı və ya bool tipində olmayan başqa obyekt ola bilər (doğru, yanlış).

if 10:
    print('True')
# True

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

Python if ifadəsinin şərti ifadəsində aşağıdakı obyektlər yalan hesab olunur.

Sıfırı təmsil edən rəqəmlər, boş sətirlər, siyahılar və s. yalan hesab olunur; qalanların hamısı doğru hesab olunur.

Obyektin necə qiymətləndirildiyini bool() ilə yoxlamaq olar.

print(bool(10))
# True

print(bool(0.0))
# False

print(bool([]))
# False

print(bool('False'))
# True

Bu, məsələn, siyahı boş olduqda prosesi sadəcə yazmaq üçün istifadə edilə bilər.

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

Qeyd edək ki, “Yanlış” sətri də doğru olacaq, çünki yuxarıdakı nümunədə göstərildiyi kimi, sətirdə boş olmayan hər hansı sətir doğru olacaq.’ ‘True’ və ya ‘False’ kimi xüsusi sətri 1,0-a çevirmək üçün distutils.util modulunda strtobool() istifadə edin.

Məntiqi operatorlarla çoxlu şərtləri və ya inkarları göstərin (və ya, yox)

Məntiqi operatorlar (və, və ya, deyil) məntiqi birləşməni, məntiqi ayırmağı və çoxsaylı şərtlərin inkarını idarə etmək üçün istifadə edilə bilər.

operator(Nəticə (if ifadəsinin şərti ifadəsində)
x and yhəm x, həm də y doğrudursa doğrudur
x or ydoğrudur, əgər x və ya y doğrudursa
not xx doğrudursa yalan, x yanlışdırsa doğrudur
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

Əslində, “x və y” və “x və ya y” Doğru və ya Yanlış deyil, ya x və ya y qaytarır. Nə qədər ki, if ifadələrində şərti ifadələrdə istifadə olunur, onlar üçün narahat olmağa ehtiyac yoxdur, çünki onlar ya Doğru, ya da Yanlış kimi qiymətləndirirlər. Təfərrüatlar üçün aşağıdakı məqaləyə baxın.

və və və ya bir dəfədən çox istifadə etmək mümkündür.

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

Yeni sətirlərdə və çoxlu sətirlərdə şərti ifadələr

Çoxlu şərti ifadələr “və” və ya “yaxud” ilə birləşdirildikdə və hər sətir uzunlaşdıqda bəzən şərti ifadəni pozub çoxlu sətirlərə yazmaq lazım gəlir.

Sətir kəsilməsi tərs kəsik işarəsindən istifadə etməklə və ya bütün sətri mötərizə içərisinə almaqla edilə bilər.

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

İstədiyiniz qədər xətti qırmaq üçün tərs xəttdən istifadə edə bilərsiniz. Eyni şəkildə, mötərizə içərisində sətri istənilən sayda kəsə bilərsiniz. Heç bir girinti limiti yoxdur.

Qeyd edək ki, bu, yalnız if ifadələrində deyil, Python kodunda hər yerdə istifadə edilə bilən bir texnikadır.

Copied title and URL