Şərt operatoru

Buraya qədər yazdığımız proqramlarda biz xətti alqoritmlərdən istifadə etdik. Yəni proqramlarımızdakı əməliyyatlar ardıcıl şəkildə icra olundular. Lakin proqramlaşdırmada budaqlanma alqoritmlərindən də istifadə olunur. Başqa sözlə desək, proqramın icra olunma istiqaməti verilmiş şərtin yerinə yetirilib yetirilməməsindən asılı olaraq dəyişə bilir. Bunun üçün Python dilində if-else şərt operatoru nəzərdə tutulmuşdur.

if-else şərt operatorunun standart yazılış forması aşağıdakı kimidir:

if şərt:
    ifadə1
else:
    ifadə2

Bildiniyiniz kimi ingiliscə if sözü əgər, else isə əks halda kimi tərcümə olunur. Burada şərt kimi istənilən məntiqi ifadə istifadə oluna bilər. Şərtdən sonra operator başlığının sonunu bildirmək üçün iki nöqtə (:) qoyulmalıdır, bu simvol həmçinin else operatorundan sonra da yazılmalıdır. Buradakı ifadə1ifadə2 isə istənilən ifadə və ya ifadələr ardıcıllığı ola bilər. Beləliklə yuxarıdakı yazılışı bu cür oxuya bilərik:

Əgər şərt ödənilirsə ifadə1, əks halda ifadə2 icra olunsun.

Python dilinin if-else şərt konstruksiyası ilə bağlı üç önəmli məqamı qeyd edək:

  1. Konstruksiyada iki nöqtə (:) simvolunun yazılması zəruridir. Bu simvol operator başlığı ilə icra olunacaq ifadəni (və ya ifadələr ardıcıllığını) bir-birindən ayırır.
  2. İki nöqtədən sonra gələn sətir aralıqla (indent) verilməlidir. Skript fayllarında bu məsafə standart olaraq dörd boşluq qədər təyin edilmişdir.
  3. İki nöqtədən sonra eyni aralıqla gələn bütün sətrlər verilmiş şərt daxilində icra olunurlar.

İndi isə şərt operatorunu konkret misal üzərində tətbiq edək. Deyək ki, verilmiş tam ədədin cüt və ya tək olduğunu yoxlamaq və bu haqda ekrana məlumat çıxarmaq lazımdır.

Proqramı yazmağa başlamadan öncə gəlin hansı ədədlərin cüt olduğunu müəyyənləşdirək. Bildiyiniz kimi ikiyə qalıqsız bölünən ədədlər cüt ədədlərdir. Başqa sözlə desək ədədi ikiyə böləndə alınan qalıq sıfıra bərabərdirsə, bu ədəd cüt, əks halda tək ədəddir. Xatırlayırsınızsa əvvəlki dərslərimizin birində biz qalıqlı bölmə operatorunu (%) keçmişdik. İndi bu operator bizim işimizə yarayacaq:

>>> a=int(input("Ədədi daxil edin:"))
Ədədi daxil edin:78
>>> if a % 2 == 0:
	   print("Cüt")
else:
	   print("Tək")

	
Cüt
>>>

Nə baş verdi? Əvvəlcə biz istifadəçinin input() funksiyası ilə daxil etdiyi qiyməti int() funksiyasından istifadə edərək bir-başa int tipinə çevirdik və a dəyişəninə mənsub etdik. Bundan sonra bu dəyişənin qiymətini ikiyə böləndə qalığının sıfır olub-olmadığını if-else şərt operatorunun köməyilə yoxladıq. Əgər qalıq sıfıra bərabərdirsə print() funksiyası ilə ekrana Cüt, deyilsə Tək məlumatını çıxardıq. Bu qədər sadə.

Keçək başqa bir misala. Azərbaycanın paytaxtının hansı şəhər olduğunu soruşan proqram tərtib edək. Düzgün cavab verəni alqışlayaq, səhv edəni də öyrədək. Gəlin bu proqramı skriptdə yazaq. Bunu necə etməyi artıq bilirsiniz:

sual = "Azərbaycanın paytaxtı hansı şəhərdir? "
cavab = input(sual)
if (cavab == "Bakı") or (cavab == "bakı"):
    print("Təbriklər! Cavabınız doğrudur.")
else:
    print("Təəssüflər! Cavabınız yanlışdır.")
    print("Doğru cavab: Bakı.")

Bu proqramı icra etmədən öncə gəlin onu incələyək. Burada biz əvvəlcə sual dəyişəninə vermək istədiyimiz sualı mənimsətdik. Sonra istifadəçinin klaviaturdan daxil etdiyi cavabı cavab dəyişənində yadda saxladıq. Bundan sonra isə cavab dəyişəninin qiymətini həqiqi cavabla müqayisə etdik və bu müqayisənin nəticəsindən asılı olaraq ekrana müvafiq məlumatlar çıxardıq.

Burada daha bir neçə məqama diqqətinizi cəlb etmək istəyirəm. Proqramdan da gördüyünüz kimi, biz şərt kimi mürəkkəb məntiqi ifadədən istifadə etdik. Bunu ona görə etdik ki, istifadəçi şəhər adını daxil edərkən ilk hərfi kiçik də yaza bilər. Burada məntiqi birləşdirici (məntiq operatoru) kimi or  (və ya) operatorundan istifadə etdik. Və biz burda sadə ifadələri mötərizə daxilində yazdıq. Əslində buna məcbur deyildik, sadəcə mürəkkəb ifadə bizim üçün daha aydın olsun deyə bunu etdik. 

Daha bir məqam isə else: operatorundan sonra iki ifadənin icra olunmasıdır. Xatırlayırsınızsa yuxarıda qeyd etmişdik ki, iki nöqtədən sonra eyni aralıqla gələn bütün sətrlər verilmiş şərt daxilində icra olunurlar. Eyni qayda if (şərt): operatorundan sonra eyni aralıqla gələn sətrlər üçün də keçərlidir.

Proqramı icra edin və suala doğru və yanlış cavablar verərək nəticələri yoxlayın.