Məntiqi ifadələr və məntiq tipi

Biz yuxarıda müqayisə operatorlarını nəzərdən keçirdik. Müqayisə operatorlarından istifadə edilərək qurulan və nəticəsi doğru (True) və ya yalan (False) olan ifadələr məntiqi ifadələr adlanır. Deməli məntiqi ifadələrin nəticəsi bizə məntiq (bool) tipində qiymətlər (True və ya False) verəcək. Beləliklə də biz Python dilinin daha bir tipi olan bool tipi ilə tanış oluruq.

Gəlin sadə məntiqi ifadələri misallarla göstərək:

>>> x = 2 * 2
>>> x == 4
True
>>> x == 5
False
>>>

Məncə hər şey aydındır. İki vur iki dörddür. Bunu bütün dünya bilir və bu hər zaman da belə olacaq. Python da bunu bilir və ona görə də x == 4 məntiqi ifadəsinin nəticəsini True (doğru), x == 5 ifadəsinin nəticəsini də False (yalan) olaraq verir.

  Digər misalları nəzərdən keçirək:

>>> x = 2 * 2
>>> x != 5	 
True
>>> x > 5	 
False
>>> x < 5	 
True
>>> x >= 4	 
True
>>> x <= 4	 
True
>>>

Biz məntiqi ifadənin nəticəsini başqa bir dəyişəndə yadda saxlaya bilərik:

>>> x = 2 * 2
>>> y = x == 5
>>> print(y)
False
>>>

Burada qeyd etmək lazımdır ki, müqayisə operatorlarının icra olunma öncəliyi mənimsətmə operatorundan daha yüksəkdir. Odur ki, yuxarıdakı proqramda əvvəlcə x == 5 ifadəsi icra olunur, daha sonra da bu ifadənin məntiqi nəticəsi y dəyişəninə mənimsədilir.

Yuxarıda qeyd etmişdik ki, məntiqi ifadələrin icrası bizə bool (məntiq) tipində qiymətlər verir. Buna type() funksiyasından istifadə etməklə əmin ola bilərik:

>>> x = 2 * 2
>>> type(x == 5)
<class 'bool'>
>>>

İndi isə verilən qiyməti bool tipinə çevirən bool() funksiyasını nəzərdən keçirək:

>>> bool(5)
True
>>> bool(0)
False
>>> bool(-2.3)
True
>>> bool("Bakı")
True
>>> bool("")
False
>>>

Yuxarıdakı misallardan da gördüyünüz kimi ədəd (tam və ya həqiqi) tipində olan və sıfırdan fərqli (müsbət və ya mənfi) qiymətlər məntiq tipinə çevriləndə True qiymətini alırlar. Sıfıra (0 və ya 0.0) bərabər qiymət isə məntiq tipinə çevriləndə False qiymətini alır. Burada bir maraqlı məqama da diqqət yetirin. Əgər str (sətir) tipində olan qiymətlər heçnə (“”) deyillərsə, o zaman onlar bool (məntiq) tipinə çevriləndə True, əks halda isə False qiymətini alırlar.

Məntiq operatorları

   Yuxarıda qeyd etmişdik ki, nəticəsi doğru (True) və ya yalan (False) olan ifadələr məntiqi ifadələrdir. Biz sadə məntiqi ifadələrdən xüsusi məntiqi birləşdiricilərin köməyilə daha mürəkkəb məntiqi ifadələr əldə edə bilərik. Bu məntiqi birləşdiricilərə məntiq operatorları deyilir. 

   Python proqramlaşdırma dilində məntiq operatorları kimi and (və), or (və ya) və not (deyil) operatorlarındn istifadə olunur. 

   Sadə məntiqi ifadələrin məntiq tipində nəticəsi (qiyməti) olduğu kimi, mürəkkəb məntiqi ifadələrin də məntiqi nəticəsi (qiyməti) vardır. Mürəkkəb məntiqi ifadələrin nəticəsi onu təşkil edən sadə məntiqi ifadələrin nəticələrindən (qiymətlərindən) və bu ifadələri birləşdirən məntiqi birləşdiricilərin növündən, yəni istifadə olunan məntiq operatorundan asılıdır. 

  Gəlin bu dediklərimizi aşağıdakı cədvəllərdə göstərək:

ifadə1 ifadə2 ifadə1  and  ifadə2  ifadə1  or  ifadə2
 False  False  False  False
 False  True  False  True
 True  False  False  True
 True  True  True  True
ifadə not  ifadə
 False  True
 True  False

   Riyaziyyatda bu cədvəllərə doğruluq cədvəlləri deyilir. Birinci cədvəldən də gördüyünüz kimi ifadə1 and ifadə2 mürəkkəb məntiqi ifadəsinin qiyməti yalnız o halda True (doğru) olur ki, onu təşkil edən ifadə1ifadə2 eyni zamanda True qiymətini almış olsun, qalan digər hallarda  isə mürəkkəb məntiqi ifadənin qiyməti False (yalan) olur. 

   Yenə birinci cədvəldən aydın olur ki, ifadə1 or ifadə2 mürəkkəb məntiqi ifadəsinin qiyməti o halda True (doğru) olur ki, onu təşkil edən ifadə1 ifadə2 ifadələrindən heç olmazsa biri True qiymətini almış olsun, qalan yeganə halda (hər ikisi False olduqda)  isə mürəkkəb məntiqi ifadənin qiyməti False (yalan) olur.

   İkinci cədvəldə göstərilən not (məntiqi inkar, deyil) operatoru verilmiş məntiqi ifadənin inkarını əldə etməyə imkan verir. Əgər ifade qiymət olaraq True almışsa, o zaman not ifade bizə False qiymətini verəcək. Eyni qayda ilə əgər ifade qiymət olaraq False almışsa, bu zaman da not ifade bizə True qiymətini verəcək. Burad diqqət yetirsəniz görərsiniz ki, not operatoru yalnız bir ifadə ilə işləyir. Belə operatorlara unar operator deyilir. 

   İndi isə məntiq operatorlarını misallar üzərində nəzərdən keçirək:

>>> a=5
>>> b=10
>>> c=2.5
>>> p="Bakı"
>>> a>3 and b<=15 True >>> p=="Bakı" or p=="bakı"
True
>>> not c==2.5
False
>>>

   Yuxarıdakı misallara bənzər sadə məntiqi ifadələrdən müxtəlif kombinasiyalı mürəkkəb məntiqi ifadələr qurun və proqramını yazaraq sınaqdan keçirin. Alınan nəticələri doğruluq cədvəlləri ilə yoxlayın.