Mantıksal Operatörler & Karar Yapıları

Veri Bilimi için Algoritma — 4

Giriş

Herkese merhaba,

Biliyorum en baştan bir şeyleri anlatmak sıkıcıdır ancak bir programlama dili ile algoritma mantığını öğrenmek öğrenen açısından daha kolaylık sağlar. Bir de üzerine uygulamalar eklemeye çalışan biri olarak elimden geldiğince hem Python konusunda hem de algoritma konusunda sizlere bir şeyler katmaya çalıştığımı düşünmekteyim.

Karar vermek insanın içgüdüsel davranışıdır. Bu yüzden bilgisayardaki karar yapılarını anlamak için gündelik hayattaki karar yapılarını incelemekte fayda var.

Örnek olarak bir insanın hoşunuza gitmeyen bir davranışına öfkelenmeniz ya da kırılmaınız olasıdır değil mi? O zaman çok basit bir şekilde bunun algoritmasını kuralım.

Görsel 1. Öfke Duygusuna ait Karar Verme Süreci

Görsel 1'i incelediğimizde bize karşı yapılan davranışı analiz edip bu analiz sonucundaki davranışımıza karar vermenin temel yapısına ait algoritmasını görmektesiniz. Tabii, insan kararları bu kadar basite indirgenemez. Çünkü karar vermemizi etkileyen karaketeristik yapımız, yaşadığımız tecrübeler, vs. etki ederek bu kararları veriyoruz ancak temelde kararlarımızı algoritmik olarak bu yapıda veriyoruz. 😃

Şimdi gelin bilgisayar dillerinde karar yapıları nasıl işliyor hep birlikte bakalım. 😄


Mantıksal Operatörler

Python’da mantıksal operatörlerin kullanım örneklerine geçmeden önce mantıksal operatörler nedir ondan kısaca bahsedelim.

Mantıksal operatörler, iki veya daha fazla ifadenin mantıksal olarak sınanmasına olanak sağlayan operatörlerdir. Sonucunda Doğru (True) veya Yanlış (False) değerleri döndürür.

Şimdi gelin, Pyton’daki kullanım örneklerine birlikte bakalım.

Görsel 2. Küçüktür İşlevi

Küçüktür işlevi, ifadeler arasındaki küçüklük sınamasını gerçekleştirmektedir. Python’da küçüktür işlevi sayısal değerler ve karakter değerleri arasında kullanılmaktadır. Örnekler, Görsel 2'de verilmiştir.

Görse 3. Büyüktür İşlevi

Büyüktür işlevi, ifadeler arasındaki büyüklük sınamasını gerçekleştirmektedir. Python’da büyüktür işlevi sayısal değerler ve karakter değerleri arasında kullanılmaktadır. Örnekler, Görsel 3'te verilmiştir.

Görsel 4. Küçük Eşit İşlevi

Küçük eşit işlevi, ifadeler arasındaki küçük ve eşit sınamalarını gerçekleştirmektedir. Python’da küçük eşit işlevi sayısal değerler ve karakter değerleri arasında kullanılmaktadır. Örnekler, Görsel 4'te verilmiştir.

Görsel 5. Büyük Eşit İşlevi

Büyük eşit işlevi, ifadeler arasındaki büyük ve eşit sınamalarını gerçekleştirmektedir. Python’da büyük eşit işlevi sayısal değerler ve karakter değerleri arasında kullanılmaktadır. Örnekler, Görsel 5'te verilmiştir.

Görsel 6. Eşit İşlevi

Eşit işlevi, ifadelerin birbirlerine eşit olma durumunu sınamak için kullanılmaktadır. Python’da eşit işlevi; sayısal, karakter ve metinsel işlemlerde kullanılmaktadır. Örnekler, Görsel 6'da verilmiştir.

Örnek 6'da görüldüğü üzere metinsel işlemlerde eşit işlevi büyük/küçük harfe duyarlı olarak çalışmaktadır.

Görsel 7. Eşit Değil İşlevi

Eşit değil işlevi, ifadelerin birbirlerine eşit olmama durumunu sınamak için kullanılmaktadır. Python’da eşit değil işlevi; sayısal, karakter ve metinsel işlemlerde kullanılmaktadır. Örnekler, Görsel 7'de verilmiştir.

Görsel 8. in Operatörü

In operatörü, bir dizi (liste) içerisinde sorgulanan değerin bulunup bulunmadığının sınanmasını sağlar. Bir önceki haftada karakter dizisi değişkeninin de bir dizi olduğundan bahsedildiği için in operatörü karakter dizilerinde de kullanılmaktadır.

Görsel 9. Ve Operatörü

Ve operatörü, iki veya daha fazla mantıksal sınamaları birbirlerine bağlamayı sağlayan operatördür. Özelliği, iki mantıksal sınanmanın da doğru olduğu durumlarda sonuç sınanmayı doğru, geri kalan bütün sınanmalarda ise sonuç sınanmayı yanlış olarak döndürmesidir. Görsel 9'da ispatı görülmektedir.

Görsel 10. Veya Operatörü

Aynı şekilde veya operatörü de iki veya daha fazla mantıksal sınamaları birbirlerine bağlamayı sağlayan operatördür. Veya operatörünün özelliği ise iki mantıksal sınanmanın da yanlış olduğu durumlarda sonuç sınanmayı yanlış, geri kalan bütün sınanmalarda ise sonuç sınanmayı doğru olarak döndürmesidir. Görsel 10'da ispatı görülmektedir.


Mantıksal operatörler ile ilgili uygulama videosuna aşağıdan ulaşabilirsiniz.

Bu şekilde mantıksal operatörlere kısaca değinmiş olduk. Ufak örneklerle önce konuyu tanıdık. Şimdi, bu operatörleri neden öğrendik; gelin hep birlikte bakalım 😄


Karar Yapıları

İnsanın karar verme dürtüsü bilgisayarlara da yansıdı. Biz konunun derinliklerini ve felsefesini teğet geçerek Python’da kullanılan karar yapılarına kısaca değinelim.

If Yapısı

Python’da if kullanımı için if anahtar kelimesi kullanılmaktadır. Yapının kolay anlaşılması adına örnek bir senaryo kurulması daha mantıklı olacaktır.

Örnek Senaryo 1: Kullanıcı tarafından belirlenen sayının pozitiflik ya da negatiflik durumunu sorgulayan algoritmanın kodunu Python dili ile yazınız.

Örneğimiz basit değil mi? Zaten basit örneklerle basit anlatılmadan konuyu kavrayamayız. Şimdi çözüme bakalım ve üzerine sohbet edelim.

Görsel 11. Örnek Senaryo 1 Alternatif Çözüm 1

Şimdi Görsel 11'e bakalım ve kodları tek tek analiz edelim.

sayi = 121

Yukarıda sayi adında bir değişken tanımladık ve içerisine 121 değeri atadık.

if (sayi > 0):
print(sayi, " sayisi pozitiftir.")

Yukarıdaki ifade incelendiğinde Python’da if yapısının temel anlamda aşağıdaki şekilde çalıştığını görmekteyiz.

if (mantıksal koşul):
Bu koşul doğru olduğunda yapılacak işlemler
Not: Python’da diğer programlama dillerindeki gibi süslü parantezle çalışmaz. Blok tabanlı çalışırlar ve varsayılan olarak bir blok 4 adet boşluğa denk gelmektedir.

Bu kadar temel bilgiden sonra kodumuza dönecek olursak; sayi adlı değişken değerinin 0'dan büyük olduğu durumda ekrana sayi, " sayisi pozitiftir." ifadesi ekrana yazılmaktadır. Buradaki sayi değişkenindeki değeri temsil etmektedir.

if (sayi < 0):
print(sayi, "sayisi negatiftir.")

Kodumuzu incelediğimizde sayi adlı değişken değerinin 0'dan küçük olduğu durumda ekrana sayi, " sayisi negatiftir." ifadesi ekrana yazılmaktadır.

Bu alternatifte sayi değişkenimizin değeri 121 oludğu için sonuç Görsel 11'deki gibi olmaktadır.

Görsel 12. Örnek Senaryo 1 Alternatif Çözüm 2

Görsel 12'deki alternatifte ise sayi değişkenimiz -121 değerine sahip olduğundan sonucun Görsel 11'deki alternatiften farklı olduğu görülmektedir.

Tamam, bu basit bir örnek ve biz konuyu söktük. Peki, bu sayi değişkenine 0 değeri verirsek sonuç ne olur?

Görsel 13. Örnek Senaryo 1 Alternatif Çözüm 3

Görsel 13'te görüldüğü üzere iki alternatife de uymadığı için hiçbir şekilde bize sonuç döndürmedi. Bu problemi nasıl çözeriz? Biliyorum, aynı şeyi düşünüyoruz.

Görsel 14. Örnek Senaryo 1 Alternatif Çözüm 4

Görsel 14'te görüldüğü gibi bir if yapısı daha ekledik ve problemimiz çözüldü. Peki, alternatif durumlar birden fazla ise neler yapmamız gerekir? Şimdi gelin bu durumda ne yapabileceğimize bakalım.

If Else Yapısı

Alternatif çözümün birden fazla olduğu durumlarda else anahtar kelimesi kullanılır. Konuyu anlamak adına örnek bir senaryo daha oluşturalım.

Örnek Senaryo 2: Kullanıcının belirlediği sayının 50'den, 100'den ve 150'den küçük olduğunu belirleyen algoritmayı Python dili ile kodlayın.

Bu basit örneği de oluşturalım ve alternatif senaryolarıyla birlikte inceleyelim.

Görsel 15. Örnek Senrayo 2 Alternatif Çözüm 1

Görsel 15'i incelediğimizde öğrendiklerimizden farklı olarak else bloğunu görmekteyiz. Bu bloğun işlevi ise;

else:
Alternatif işlemler olduğunda yapılacak işlemler.

Şeklinde kullanımı söz konusudur. Yani belirlenen alternatiflerin dışında kalan bütün alternatiflerde istediğim bu işlem(ler)i yap diyoruz aslında. O zaman Örnek Senaryo 1'e dönecek olursak;

Görsel 16. Örnek Senaryo 1 Alternatif Çözüm 5

Görsel 16'daki alternatif çözümü de oluşturabiliriz.

Sonuç olarak else yapısı birden falza alternatifin olduğu durumlarda işimize yarayacak bir yapıdır. Örneklerle pekiştireceğiz zaten.

!Ancak!

Örnek Senaryo 2'de Fark ettiğinizi düşündüğüm bir hata mevcut. Aslında hata değil ancak kullanım açısından bizlere sıkıntı çıkarabilecek bir hata olduğunu söyleyebilirim.

Görsel 17. Örnek Senrayo 2 Alternatif Çözüm 2
Görsel 18. Örnek Senrayo 2 Alternatif Çözüm 3

Görsel 17 incelendiğinde 100'den küçük değer olan 78 değerini girdiğimde -mantıklı olarak- bu değerin aynı zamanda 150'den küçük olduğu da ekrana yazdırılmakta.

Bununla birlikte Görsel 18 incelendiğinde ise 50'den küçük olan 38 değerinin hem 100'den hem de 150'den küçük olma durumunun ekrana yazdırıldığı görülmekte.

Bu sonuç, programlamada istenilen sonuç olmadığı için bir seçenek kabul edildiğinde diğer seçenekleri çalıştırmayacak yapılar gerekmekte. Şimdi bu yapıyı birlikte inceleyelim.

If Elif Else Yapısı

Python’a özgü bir anahtar kelime olan elif anahtar kelimesi, bir seçenek seçildiğinde diğer seçenekleri çalıştırmaması için kullanılan bir anahtar kelimedir.

Şimdi Örnek Senaryo 2'deki ilk if anahtar kelimesinden sonraki if anahtar kelimelerini elif anahtar kelimelerine dönüştürelim.

Görsel 19. Örnek Senrayo 2 Alternatif Çözüm 4

Görsel 19'da da görüldüğü üzere ilk şartımız olan sayi < 50 şatını kabul ettikten sonra diğer şartlara bakmadan programı bitirdi ve Sayı 50'den küçüktür. ifadesi ekrana yazdırıldı.

Aynı şekilde Örnek Senaryo 1'deki çözüme ilişkin alternatifi şu şekilde oluşturabiliriz.

Görsel 20. Örnek Senaryo 1 Alternatif Çözüm 6

Görsel 20'de görüldüğü üzere alternatif çözüm sorunsuz bir şekilde çalışmaktadır.


Karar yapıları konusunda uygulama videosuna aşağıdan ulaşabilirsiniz.

Bu şekilde karar yapılarını detaylı öğrenmiş olduk. Kullanım ile ilgili örneklere ulaşacağız merak etmeyin, siz buradaki örnekleri kendiniz yazmaya ve daha fazla araştırma yapmaya devam edin. Uygulama çözümlerine hazırlıklı olmanız gerek! 😄


Sonuç

Çok detaylı ve uzun bir yazı olduğunu düşünmekteyseniz, yalnız değilsiniz! 😅

Sabrınız için çok teşekkür ederim. Elimden geldiğince açıklayıcı ve örneklerle birlikte anlatım yapmaya çalıştım. Konuları tek tek bölebilirdim, anlatım olarak benim için daha kolay olurdu ancak hem kısa zamanda bir şeyleri sizlerle başarmak istiyorum hem de bir haftaya yayarak çalışabileceğiniz konuları anlatarak devam etmek istiyorum.

Uygulama 2 bölümünde görüşmek üzere, kendinize iyi bakın. ✋

Dostlukla.

Öğretmek için mi öğreniyorum; yoksa öğretmek için mi öğreniyorum?