- Şərt Bəyanatları
- Müqayisə Operatorları
- Məntiqi Operatorlar
- Kimlik Operatorları
- Üzvlük Operatorları
- Ternar Operator
- Match-Case Bəyanatı
- Operator Prioriteti
- Xülasə
- Tapşırıqlar
Şərt bəyanatları müəyyən şərtlərə əsaslanaraq müxtəlif kod bloklarını icra etməyə imkan verir.
if
bəyanatı müəyyən edilmiş şərt doğru olduqda kod blokunu icra edir.
x = 10
if x > 5:
print("x 5-dən böyükdür")
Nəticə:
x 5-dən böyükdür
if-else
bəyanatı şərt doğru olduqda bir kod blokunu, yanlış olduqda isə başqa bir kod blokunu icra edir.
x = 3
if x > 5:
print("x 5-dən böyükdür")
else:
print("x 5-dən böyük deyil")
Nəticə:
x 5-dən böyük deyil
if-elif-else
bəyanatı bir neçə şərti yoxlamağa imkan verir.
x = 7
if x > 10:
print("x 10-dan böyükdür")
elif x > 5:
print("x 5-dən böyükdür, lakin 10-dan kiçik və ya bərabərdir")
else:
print("x 5-dən kiçik və ya bərabərdir")
Nəticə:
x 5-dən böyükdür, lakin 10-dan kiçik və ya bərabərdir
if
bəyanatlarını digər if
bəyanatlarının içində yerləşdirə bilərsiniz.
x = 15
if x > 10:
print("x 10-dan böyükdür")
if x > 20:
print("x həmçinin 20-dən də böyükdür")
else:
print("x 20-dən böyük deyil")
Nəticə:
x 10-dan böyükdür
x 20-dən böyük deyil
Müqayisə operatorları iki dəyəri müqayisə etmək üçün istifadə olunur.
x = 10
y = 20
print(x == y) # Bərabərdir
print(x != y) # Bərabər deyil
print(x > y) # Böyükdür
print(x < y) # Kiçikdir
print(x >= y) # Böyük və ya bərabərdir
print(x <= y) # Kiçik və ya bərabərdir
Nəticə:
Yanlış
Doğru
Yanlış
Doğru
Yanlış
Doğru
age = 18
if age >= 18:
print("Siz yetkinsiniz.")
else:
print("Siz yetkin deyilsiniz.")
Nəticə:
Siz yetkinsiniz.
Məntiqi operatorlar şərt bəyanatlarını birləşdirmək üçün istifadə olunur.
and
operatoru hər iki şərt doğru olduqda Doğru
qaytarır.
x = 10
y = 20
print(x > 5 and y > 15) # Doğru
print(x > 15 and y > 15) # Yanlış
Nəticə:
Doğru
Yanlış
or
operatoru ən azı bir şərt doğru olduqda Doğru
qaytarır.
x = 10
y = 20
print(x > 5 or y > 25) # Doğru
print(x > 15 or y > 25) # Yanlış
Nəticə:
Doğru
Yanlış
not
operatoru şərt yanlış olduqda Doğru
qaytarır.
x = 10
print(not (x > 15)) # Doğru
print(not (x > 5)) # Yanlış
Nəticə:
Doğru
Yanlış
age = 25
income = 50000
if age > 18 and income > 30000:
print("Siz kredit üçün uyğunsunuz.")
else:
print("Siz kredit üçün uyğun deyilsiniz.")
Nəticə:
Siz kredit üçün uyğunsunuz.
Kimlik operatorları iki obyektin yaddaş yerlərini müqayisə etmək üçün istifadə olunur.
is
operatoru hər iki dəyişən eyni obyektə işarə etdikdə Doğru
qaytarır.
x = ["alma", "banan"]
y = ["alma", "banan"]
z = x
print(x is z) # Doğru, çünki z x ilə eyni obyektdir
print(x is y) # Yanlış, çünki x y ilə eyni obyekt deyil
print(x == y) # Doğru, çünki x y ilə bərabərdir
Nəticə:
Doğru
Yanlış
Doğru
is not
operatoru hər iki dəyişən eyni obyektə işarə etmədikdə Doğru
qaytarır.
x = ["alma", "banan"]
y = ["alma", "banan"]
z = x
print(x is not z) # Yanlış, çünki z x ilə eyni obyektdir
print(x is not y) # Doğru, çünki x y ilə eyni obyekt deyil
Nəticə:
Yanlış
Doğru
Üzvlük operatorları bir ardıcıllığın obyektin içində olub-olmadığını yoxlamaq üçün istifadə olunur.
in
operatoru müəyyən edilmiş dəyər obyektin içində olduqda Doğru
qaytarır.
x = ["alma", "banan"]
print("banan" in x) # Doğru, çünki "banan" siyahıda var
print("gilas" in x) # Yanlış, çünki "gilas" siyahıda yoxdur
Nəticə:
Doğru
Yanlış
not in
operatoru müəyyən edilmiş dəyər obyektin içində olmadıqda Doğru
qaytarır.
x = ["alma", "banan"]
print("banan" not in x) # Yanlış, çünki "banan" siyahıda var
print("gilas" not in x) # Doğru, çünki "gilas" siyahıda yoxdur
Nəticə:
Yanlış
Doğru
Ternar operator bir şərtə əsaslanaraq dəyişənə dəyər təyin etməyə imkan verir.
x = 10
y = 20
nəticə = "x daha böyükdür" əgər x > y else "y daha böyükdür"
print(nəticə)
Nəticə:
y daha böyükdür
number = 5
nəticə = "Cüt" əgər number % 2 == 0 else "Tək"
print(nəticə)
Nəticə:
Tək
match-case
bəyanatı naxış uyğunluğu üçün istifadə olunur və digər dillərdəki switch
bəyanatına bənzəyir.
def http_status(status):
match status:
case 200:
return "OK"
case 404:
return "Tapılmadı"
case 500:
return "Daxili Server Xətası"
case _:
return "Naməlum Status"
print(http_status(200))
print(http_status(404))
print(http_status(500))
print(http_status(123))
Nəticə:
OK
Tapılmadı
Daxili Server Xətası
Naməlum Status
def day_of_week(day):
match day:
case 1:
return "Bazar ertəsi"
case 2:
return "Çərşənbə axşamı"
case 3:
return "Çərşənbə"
case 4:
return "Cümə axşamı"
case 5:
return "Cümə"
case 6:
return "Şənbə"
case 7:
return "Bazar"
case _:
return "Yanlış gün"
print(day_of_week(1))
print(day_of_week(5))
print(day_of_week(7))
print(day_of_week(0))
Nəticə:
Bazar ertəsi
Cümə
Bazar
Yanlış gün
Operator prioriteti ifadədə əməliyyatların hansı ardıcıllıqla yerinə yetirildiyini müəyyən edir. Yüksək prioritetli operatorlar aşağı prioritetli operatorlardan əvvəl qiymətləndirilir.
Burada Python-da operatorların prioritet cədvəli, ən yüksəkdən ən aşağıya doğru sıralanmışdır:
**
(Üstələmə)+x
,-x
,~x
(Unary plus, Unary minus, Bitwise NOT)*
,/
,//
,%
(Çoxaltma, Bölmə, Tam Bölmə, Modulus)+
,-
(Toplama, Çıxma)<<
,>>
(Bitwise shift operatorları)&
(Bitwise AND)^
(Bitwise XOR)|
(Bitwise OR)==
,!=
,>
,>=
,<
,<=
,is
,is not
,in
,not in
(Müqayisələr, Kimlik, Üzvlük)not
(Məntiqi NOT)and
(Məntiqi AND)or
(Məntiqi OR)if
-else
(Ternar operator)=
(Təyinat) və digər təyinat operatorları (+=
,-=
,*=
,/=
,//=
,%=
,**=
,&=
,|=
,^=
,>>=
,<<=
)
nəticə = 2 ** 3 * 4
print(nəticə)
Nəticə:
32
İzah: Üstələmə (**
) çoxaltmadan (*
) daha yüksək prioritetə malikdir, buna görə də əvvəlcə 2 ** 3
qiymətləndirilir, nəticədə 8
alınır və sonra 8 * 4
qiymətləndirilir, nəticədə 32
alınır.
nəticə = 2 + 3 * 4
print(nəticə)
Nəticə:
14
İzah: Çoxaltma (*
) toplama (+
) daha yüksək prioritetə malikdir, buna görə də əvvəlcə 3 * 4
qiymətləndirilir, nəticədə 12
alınır və sonra 2 + 12
qiymətləndirilir, nəticədə 14
alınır.
nəticə = (2 + 3) * 4
print(nəticə)
Nəticə:
20
İzah: Möhtərizələr ən yüksək prioritetə malikdir, buna görə də möhtərizələr içindəki ifadə (2 + 3)
əvvəlcə qiymətləndirilir, nəticədə 5
alınır və sonra 5 * 4
qiymətləndirilir, nəticədə 20
alınır.
nəticə = not (Doğru və Yanlış) və ya Doğru
print(nəticə)
Nəticə:
Doğru
İzah: and
operatoru not
operatorundan daha yüksək prioritetə malikdir, buna görə də əvvəlcə Doğru və Yanlış
qiymətləndirilir, nəticədə Yanlış
alınır. Sonra not Yanlış
qiymətləndirilir, nəticədə Doğru
alınır. Nəhayət, Doğru və ya Doğru
qiymətləndirilir, nəticədə Doğru
alınır.
x = 10
y = 20
nəticə = x < y və y > 15
print(nəticə)
Nəticə:
Doğru
İzah: Müqayisə operatorları (<
, >
) məntiqi operatorlardan (and
) daha yüksək prioritetə malikdir, buna görə də əvvəlcə x < y
və y > 15
qiymətləndirilir, nəticədə Doğru
və Doğru
alınır. Sonra Doğru və Doğru
qiymətləndirilir, nəticədə Doğru
alınır.
Bu fəsildə biz şərt bəyanatlarını, müqayisə operatorlarını, məntiqi operatorları, kimlik operatorlarını, üzvlük operatorlarını, ternar operatoru, match-case bəyanatını və operator prioritetini öyrəndik.
- Bir ədədin müsbət, mənfi və ya sıfır olduğunu yoxlayan proqram yazın.
- Bir ədədin cüt və ya tək olduğunu yoxlayan proqram yazın.
- Bir qiyməti daxil edən və müvafiq hərf qiymətini (A, B, C, D, F) çap edən proqram yazın.
- Bir rəqəmə əsaslanaraq həftənin gününün adını çap edən match-case bəyanatından istifadə edən proqram yazın (1 Bazar ertəsi, 2 Çərşənbə axşamı və s.).
- Müxtəlif operatorları bir ifadədə istifadə edərək operator prioritetini nümayiş etdirən proqram yazın.