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.
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.
veri0 = True
type(veri0)
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.
3 < 2
print 3*5-12 <= 3
Matematikte bool cebiri veya önermeler cebiri başlığı altında öğrendiğimiz bağlaçları kullanabiliriz: and, or ve not.
3<2 or 1 >= 0 or not 123 <= 124
256 == 2**8 and 512 < 2**9
Bool verilerin başka önemli bir özelliği yok, bilmemiz gereken sadece bu kadar.
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.
giris = int(raw_input("Bir sayı girin: "))
if giris > 0:
print "Girdiğin sayı pozitif."
print "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.
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ı"
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.
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ı"
Daha becerikli bir program olarak aşağıdakini kodlayabiliriz.
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ı"
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.
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ı"