Süleyman ÖĞREKÇİ
suleymanogrekci.wordpress.com

If-Else Koşullu Yapısı ile Karar Verme

Programlamada çeşitli senaryolar göz önüne alınıp her bir durumda programın ne yapması gerektiği ayrı ayrı kodlanır. Bu tür işlemlerde karar verme süreçleri if-else koşullu yapısı yardımıyla yürütülür.

Bool Veri Tipi

Koşullu yapıyı öğrenmek için önce yeni bir veri tipini daha öğrenmemiz gerekiyor: bool. Bu veri tipi sadece iki değer alabilir: True veya False. Bu değerler bire bir bu şekilde yazılmalıdır, tırnak işareti içinde veya baş harfleri küçük yazılırsa python tarafından bool değer olarak algılanmazlar.

In [1]:
veri0 = True
type(veri0)
Out[1]:
bool

Mantıksal operasyonlar pythonda bir bool veri döndürürler. Mantıksal operatörler <, >, <=, <=, ==, != gibi operasyonlardır. Bunlar sırasıyla küçüktür, büyüktür, küçükeşittir, büyükeşittir, eşittir, ve eşit değildir anlamındadır. Dikkat: tek eşittir (=) ile tanımlama, çift eşittir (==) ile ise eşitlik kurulduğuna dikkat edin.

In [2]:
3 < 2
Out[2]:
False
In [3]:
print 3*5-12 <= 3
True

Matematikte bool cebiri veya önermeler cebiri başlığı altında öğrendiğimiz bağlaçları kullanabiliriz: and, or ve not.

In [4]:
3<2 or 1 >= 0 or not 123 <= 124
Out[4]:
True
In [5]:
256 == 2**8 and 512 < 2**9
Out[5]:
False

Bool verilerin başka önemli bir özelliği yok, bilmemiz gereken sadece bu kadar.

If-Else Yapısı

Artık if-else koşullu yapısını ele alabiliriz. Bu yapının söz dizimi aşağıdaki gibidir.

...
...
if bool_veri:
    komutlar
    komutlar
    komutlar
...
...

Burada dikkat etmemiz gereken birkaç şey var. Birincisi ilk satır if kelimesiyle başlamalı, ve hemen sonrasında bir karakter boşluktan sınra bir bool verisi yazılmalı, hemen sonrasında iki nokta üst üste yapılıp alt satıra geçilmeli. Bir alt satırda komutlar satırın en başından değil, bir tab kadar boşluk (4 tane space) bırakıldıktan sonra yazılmalıdır.

Bu şekilde yapılan bir if yapısı şu şekilde çalışır; eğer bool verisinin değeri True is alt satırlardaki bir tab boşluktan sonra başlayan tüm komutlar (boşluk bırakılmadan başlayan ilk komutu görünceye kadar üm komutları) çalıştırılır, eğer bool veri değeri False ise hiçbirşey çalıştırılmaz, doğrudan boşluk bırakılmadan başlanan ilk komuta atlanır.

In [6]:
giris = int(raw_input("Bir sayı girin: "))

if giris > 0:
	print "Girdiğin sayı pozitif."

print "Program sonlandırıldı"
Bir sayı girin:  320Girdiğin sayı pozitif.
Program sonlandırıldı

Yukarıdaki programı inceleyin, sıfır yada negatif bir giriş yapılınca doğrudan son satıra atlanıyor. Sıfırı ve negatif sayıları da algılayacak şekilde bu programı geliştirebiliriz.

In [7]:
giris = int(raw_input("Bir sayı girin: "))

if giris > 0:
	print "Girdiğin sayı pozitif."

if giris == 0:
    print "Girdiğin sayı sıfır."

if giris < 0:
    print "Girdiğin sayı negatif."

print "Program sonlandırıldı"
Bir sayı girin:  -12Girdiğin sayı negatif.
Program sonlandırıldı

Else ifadesi yardımıyla yukarıdaki kodları sadeleştirebiliris. If bloğunda komutlardan sonra boşluksuz olarak else kelimesi ve sonrasında iki nokta üst üste bırakarak bir alt satırda bir tab boşluk sonrasında belirttiğimiz komutlar, if bloğunda belirttiğimiz bool değeri False ise çalıştırılır. Aşağıdaki kodları inceleyin.

In [8]:
giris = int(raw_input("Bir sayı girin: "))

if giris > 0:
	print "Girdiğin sayı pozitif."
else:
    print "Girdiğin sayı sıfır veya negatif."

print "Program sonlandırıldı"
Bir sayı girin:  -2Girdiğin sayı sıfır veya negatif.
Program sonlandırıldı

Daha becerikli bir program olarak aşağıdakini kodlayabiliriz.

In [9]:
giris = int(raw_input("Bir sayı girin: "))

if giris > 0:
	print "Girdiğin sayı pozitif."
else:
    if giris == 0:
        print "Girdiğin sayı sıfır."
    else:
        print "Girdiğin sayı negatif."

print "Program sonlandırıldı"
Bir sayı girin:  -22Girdiğin sayı negatif.
Program sonlandırıldı

Else sonrasında tekrar if bloğu açmak yerine elif deyimini kullanabiliriz, aşağıdaki program ile yukarıdaki bire bir aynı şekilde çalışır.

In [10]:
giris = int(raw_input("Bir sayı girin: "))

if giris > 0:
	print "Girdiğin sayı pozitif."
elif giris == 0:
    print "Girdiğin sayı sıfır."
else:
    print "Girdiğin sayı negatif."

print "Program sonlandırıldı"
Bir sayı girin:  0Girdiğin sayı sıfır.
Program sonlandırıldı