Programlamada olduğu gibi hayatımızın her alanında olan 'mantık' konusunu göreceğiz. Programlamadaki mantık için çeşitli mantıksal operatörler geliştirilmiştir. Bunlar, bazı şeyleri karşılaştırmamıza olanak tanıyor ve bu karşılaştırma sonucunda kalan işlemleri gerçekleştirmemize yardımcı oluyor. Birkaç cümle kurarak bunu daha da açalım.
>>> Eğer x, y değerinden küçükse z işlemini yap.
>>> Eğer x ve y birbirine eşitse hiçbir şey yapma.
>>> Eğer x 'doğru' ise bunu 'yanlış'a çevir ve z işlemini yap.
Gerçek hayattan örnekler verelim:
>>> Yumurta varsa bir koli al.
>>> X çikolatasından al. Eğer X yoksa Y çikolatasından al.
>>> Kırmızı çantanın içi boş ise onu bana getir.
Bu cümleleri biz, çok rahat bir şekilde kurabiliyor, anlayabiliyor ve karşımızdakine anlatabiliyoruz. İşimiz, bu cümleleri ve benzerlerini bilgisayara anlatmaktır. Bunun için, blogun başında da söylediğim gibi bazı semboller (mantıksal operatörler) geliştirilmiştir. Bunları toplu bir şekilde görelim, ondan sonra örneklere başlayacağız.
'==' Bu işaret, iki değerin eşit olup olmadığını sorgular. Ancak bu değerler sayısal değer olmak zoruna değil; string de olabilir. Bu işareti kullanırken kullanacağımız kelime; 'eşitse'dir. Koşulumuz 'eğer eşitse' değerimiz 'True' sonuç verecek ve işlemler gerçekleştirilecektir. Aksi durumda değerimiz 'False' olacak ve işlem gerçekleştirilmeyecektir. Örneğin;
>>> Eğer x, y'ye eşitse bunları topla.
'!=' Bu, 'eşit değilse' koşulunun işaretidir. Bu, iki değerin eşitsizliğini sorgular. Koşulumuz 'eğer eşit değilse' 'True' sonuç verecek ve işlemler gerçekleştirilecektir. Aksi durumda değerimiz 'False' olacak ve işlem gerçekleştirilmeyecektir.
>>> Eğer x, y'ye eşit değilse bunları birbirinden çıkar.
'!' Ünlem işareti, önüne geldiği değeri tersine dönüştürür ve İngilizce'deki 'Not' kelimesini (olumsuzluk ekini) ifade eder. Örnek vermek gerekirse 'false' değerimiz 'false' şeklindedir ama '!false' değerimiz 'true' şeklindedir. 'Not false' demek, 'yanlış değil' yani 'doğru' anlamına gelir. Aksi durumda 'Not true' demek ise 'doğru değil' yani 'yanlış' anlamına gelir. Bu ikisini '!false' ve '!true' olarak gösterebilirsiniz.
>>> Koşulumuz eğer yanlış değilse (!false) x ve y'yi topla.
'<' Bu, matematikten de bildiğiniz üzere 'küçüktür' işaretidir. Aynı mantıkla gidecek olursak şu cümleyi kurabiliriz:
>>> x, y'den küçükse x'i ekrana yazdır.
'>' Bu da 'büyüktür' anlamına gelir. Cümlemiz şöyle olabilir:
>>> x, y'den büyükse y'yi ekrana yazdır.
'<=' Matematikteki 'küçük eşit' kavramı bu sembolle gösteriliyor. 'Küçüktür' dediğimiz zaman değerin kesinlikle küçük olmasını bekleriz ama 'küçük eşit' dediğimizde değerin ya küçük ya da eşit olduğunu anlarız.
>>> Eğer x, y'den küçük veya y'ye eşitse bu ikisini topla.
'>=' Bu da 'büyük eşit' sembolüdür. Mantık, yukarıdaki ile tamamen aynı. 'Büyüktür' dediğimizde değerin kesinlikle büyük olmasını beklerken 'büyük eşit' dediğimizde değerin ya büyük ya da eşit olduğunu anlarız.
>>> Eğer x, y'den büyük veya y'ye eşitse bu ikisini çıkar.
'&' Bu sembol, 've' anlamını taşır. Bir koşul ifadesinde iki koşulu birbirine bağlar. Bunu kullandığımızda iki koşulun da gerçekleşmiş olması zorunludur. Örneğin;
>>> "x, y'den küçük ve x, z'den büyükse hepsini topla." şeklinde bir cümle kurabiliriz. Burada eğer x, y'den küçük değilse yani ilk koşulumuz sağlanmazsa değer 'False' olacaktır ve bu, bütün işlemi etkileyip işlemi gerçekleştirmeyecektir. Aynı şekilde x, z'den büyük değilse yani ikinci koşul sağlanmazsa değerimiz 'False' olacak ve işlem gerçekleşmeyecektir. İki koşul da 'True' olmak zorundadır; eğer bir tanesi bile 'False' ise koşul sağlanmayacaktır. Bu sembolü klavyenizden 'SHIFT + 6' kombinasyonuyla elde edebilirsiniz. Bunun yanında Python'da bu sembol yerine 've' anlamına gelen İngilizce'deki 'and' kelimesini de kullanabilirsiniz.
'|' Bu sembol, 'ya da' anlamına gelir. Bir koşul ifadesinde iki koşulu birbirine bağlar. Bu koşul ifadesinde, iki koşuldan birinin gerçekleşmesi yani 'True' olması yeterli olacaktır.
>>> "x, y'den küçük ya da x, z'den büyükse hepsini topla." cümlesini ele alalım. Burada bir koşulun gerçekleşmesi yeterlidir. Yani x, y'den küçük ancak z'den de küçükse işlem gerçekleşecektir.
Python'da bu sembol yerine 'ya da' anlamına gelen İngilizce'deki 'or' kelimesini de kullanabilirsiniz.
Bu sembolü şu şekilde elde edebilirsiniz:

Az önceden beri "'True' olursa, 'False' olursa" tarzında cümleler kurduk. Bu noktada 'bool' veri tipini hatırlamış olmanız gerekiyor. İlk bakışta çok da önemli değilmiş gibi gözükebileceğini ancak çok işlevsel olduğunu söylemiştim. Şimdi, bunları programlamaya başlayalım.

Hepsini açıkladım, yeşil yazıları okuyabilirsiniz. Şimdi, and ve or kullanmayı deneyelim bakalım. Burada, sembol kullanmayacağım çünkü sembol kullanınca stabilliğin bozulduğunu fark ettim. O yüzden direkt olarak and ve or kullanacağım.

Üçüncü satırdaki ifadede sol taraftaki koşulumuz '2 == 2' şeklinde. Buradaki soru; "2, 2'ye eşit mi?". Bunun cevabının 'Evet' yani 'True' olduğunu görüyoruz. Sağ taraftaki koşulda ise '3 == 3' koşulu var. "3, 3'e eşit mi?" Cevabımız yine 'Evet' yani 'True'. Bu durumda True + True = True sonuç döndürecektir.
Beşinci satırda ilk koşulumuz '2 == 3' şeklinde. "2, 3'e eşit mi?" Cevabımız 'Hayır' yani 'False' olacaktır. İkinci koşula baktığımızda '3 == 3' koşulunu görüyoruz. "3, 3'e eşit mi?" Cevabımız 'Evet' yani 'True' olacaktır. Aradaki operatöre baktığımızda bunun 'and' olduğunu görüyoruz. and, iki koşulun da True olması durumunda çalışacak bir operatördü. Ancak bizim koşulumuzda iki koşuldan birinin değeri 'False'. Bu durumda bu koşulun tamamı bize 'False' değer döndürecek yani işlem gerçekleştirilmeyecektir.
Yedinci satırda ilk koşulumuz '2 == 2'. 2 rakamının 2'ye eşit olduğunu biliyoruz. Bu durumda bu koşul 'True' olacaktır. Diğer koşulumuz ise; '3 == 3' şeklinde. 3 rakamının 3'e eşit olduğunu biliyoruz. Bu durumda bu koşulumuz da 'True' olacaktır. True + True şeklinde gelen her koşul, True sonuç döndürecektir.
Dokuzuncu satırda ilk koşulumuz '2 == 3'. Peki, "2 rakamı 3'e eşit mi?" Cevabımız 'False' olacaktır. Diğer koşula baktığımızda 3 rakamının 3'e eşit olduğunu görüyoruz. Bu durumda cevabımız 'True' olacaktır. Aynı koşullar and operatörü ile işlenseydi sonucumuz 'False' olacaktı çünkü iki koşuldan birinin değeri 'False'. Ancak şu an biz, 'or' operatörü ile işlem yapıyoruz ve 'or' için tek bir koşulun 'True' olması yeterliydi. Dolayısıyla işlemimizin sonucu şöyle olacaktır: False + True = True.
Python ve mantık bu şekildeydi.
Yayınlanma Tarihi: 2022-10-22 18:44:26
Son Düzenleme Tarihi: 2022-10-25 18:12:30