Günlük hayatta sürekli olarak çeşitli durumlara göre kararlar alırız. Örneğin; hava yağmurluysa yanımıza şemsiye alırız, değilse almayız. Benzer şekilde, teneffüste çay mı yoksa kahve mi içeceğimize o anki ruh halimize veya önceki teneffüste ne içtiğimize göre karar veririz. Yazdığımız bilgisayar programlarının da tıpkı insanlar gibi akıllı davranabilmesi ve karşılaşılan farklı durumlara göre farklı tepkiler verebilmesi gerekir.
PYTHON KOŞULLU İFADELER EĞİTİM VİDEOMUZ İÇİN TIKLAYIN
Önceki derslerimizde Python’da verileri nasıl saklayacağımızı (değişkenler) ve bunlar üzerinde nasıl işlem yapacağımızı (operatörler) öğrenmiştik. Bu rehberimizde, yazdığımız kodlara bir “beyin” eklememizi sağlayan Python Koşullu İfadeler (Karar Yapıları) konusunu en temelden, gerçek hayat örnekleriyle öğreneceğiz.
1. Koşullu İfadelerin Temeli: Karşılaştırma ve Boolean Değerler
Python’da bir kararın verilmesi, her zaman ortada bir “koşulun” olmasına bağlıdır. Bir koşul, Python tarafından değerlendirildiğinde her zaman True (Doğru) veya False (Yanlış) olmak üzere Boolean (Mantıksal) bir değer üretir.
Koşulları oluştururken bir önceki dersimizde öğrendiğimiz karşılaştırma operatörlerini kullanırız:
==(Eşittir)!=(Eşit Değildir)>(Büyüktür),<(Küçüktür)>=(Büyük Eşittir),<=(Küçük Eşittir)
Kritik Uyarı: Programlamaya yeni başlayanların en sık yaptığı hata, atama operatörü olan tek eşittir (=) ile karşılaştırma operatörü olan çift eşittir (==) işaretini karıştırmaktır. Karar yapılarında her zaman == kullanmalıyız.
2. Sadece Bir Koşul Varsa: if Yapısı (Eğer)
Python’da karar yapıları İngilizce “eğer” anlamına gelen if anahtar kelimesi ile temsil edilir. if yapısı, sadece belirlediğimiz koşul “True” (Doğru) sonucunu verirse altındaki kod bloğunu çalıştırır; aksi halde o kod bloğunu atlar.
Sözdizimi Kuralı ve Girinti (Indentation): Python’da if ifadesinin sonuna her zaman iki nokta üst üste (:) konulur. Ayrıca if bloğunun içine yazılacak olan kodlar, okunabilirliği sağlamak adına içeriden (genellikle klavyedeki Tab tuşu ile veya 4 boşluk bırakılarak) başlatılmak zorundadır. Eğer bu girintiyi (indentation) yapmazsanız Python hata verecektir.
Örnek Uygulama: Kullanıcının girdiği yaş değerine göre ehliyet alıp alamayacağını kontrol eden bir kod yazalım.
yas = int(input("Yaşınızı girin: "))
if yas >= 18:
print("Ehliyet alabilirsiniz")
Bu örnekte, eğer kullanıcı 20 girerse, 20 >= 18 koşulu True olacağı için ekrana “Ehliyet alabilirsiniz” yazdırılır. Ancak kullanıcı 15 girerse, koşul False olur ve program ekrana hiçbir şey yazdırmadan biter.
3. Alternatif Durumlar İçin: if - else Yapısı (Eğer – Değilse)
Yukarıdaki örnekte koşul sağlanmadığında program hiçbir şey yapmıyordu. Peki ya koşul sağlanmadığında (yani durum False olduğunda) başka bir işlemin yapılmasını istiyorsak? İşte burada devreye İngilizcede “değilse” anlamına gelen else anahtar kelimesi girer.
Bir if - else yapısı çalıştığında, sadece ve sadece bir tane kod bloğu kesin olarak çalıştırılır: Ya if bloğu (koşul doğruysa) ya da else bloğu (koşul yanlışsa).
Örnek Uygulama: Çift / Tek Sayı Kontrolü Girilen bir sayının çift mi yoksa tek mi olduğunu bulan bir program yazalım. Bir sayının 2’ye bölümünden kalan (modu) 0 ise o sayı çifttir.
girilen_sayi = int(input("Bir sayı girin: "))
if girilen_sayi % 2 == 0:
print("Bu bir çift sayıdır.")
else:
print("Bu bir tek sayıdır.")
Bu kodda sayının 2’ye kalansız bölünüp bölünmediği kontrol edilir. Sonuç 0 ise if bloğu, 0 değilse (örneğin 1 kalıyorsa) else bloğu çalışır. Dikkat ederseniz else ifadesinin yanına bir koşul yazılmaz, sadece iki nokta (:) konur.
4. İkiden Fazla Durum Varsa: if - elif - else Zinciri
Gerçek dünyada kararlar her zaman “siyah” veya “beyaz” kadar net iki seçenekli değildir. Bazen üç, dört veya daha fazla seçeneği değerlendirmemiz gerekir. Python’da art arda birden fazla koşulu kontrol etmek için “else if” kelimesinin kısaltması olan elif kullanılır.
Zincirleme kararlarda Python yukarıdan aşağıya doğru okuma yapar. Hangi koşul ilk olarak True (Doğru) çıkarsa o bloğu çalıştırır ve zincirin geri kalanını okumadan atlar.
Örnek Uygulama: Sayının İşaretini Bulma Bir sayı sıfırdan büyük (pozitif), sıfırdan küçük (negatif) veya tam olarak sıfıra eşit olabilir.
sayi = int(input("Bir sayı girin: "))
if sayi > 0:
print("Sayı pozitiftir.")
elif sayi < 0:
print("Sayı negatiftir.")
else:
print("Sayı sıfıra eşittir.")
Bu yapıda if veya elif şartlarından hiçbiri sağlanmazsa, kaçınılmaz son olarak else bloğu devreye girer.
5. Birden Fazla Şartı Aynı Anda Kontrol Etme (Mantıksal Operatörler)
Bazen bir kararı vermek için tek bir koşul yeterli olmaz, iki veya daha fazla şartın aynı anda sağlanıp sağlanmadığını görmek isteriz. Bunun için mantıksal operatörleri kullanırız:
and(Ve): Belirtilen tüm koşulların kesinlikle True olmasını bekler. Biri bile False ise sonuç False olur.or(Veya): Belirtilen koşullardan en az birinin True olması, tüm sonucun True olması için yeterlidir.not(Değil): Ortadaki mantıksal durumu tam tersine çevirir (True ise False yapar).
Örnek Uygulama: İşe Alım Kriterleri Bir kişinin işe alınması için hem İngilizce bilmesi hem de ofis programlarına hakim olması gerektiğini varsayalım.
yabanci_dil = input("İngilizce biliyor musunuz? (Evet/Hayır): ")
ofis_programlari = input("Ofis programlarını biliyor musunuz? (Evet/Hayır): ")
if yabanci_dil == "Evet" and ofis_programlari == "Evet":
print("Tebrikler, işe alındınız.")
else:
print("Üzgünüz, kriterlerimizi sağlamıyorsunuz.")
Bu örnekte and bağlacı kullanıldığı için, kullanıcının “Tebrikler” mesajını alabilmesi için her iki soruya da tam olarak “Evet” yazması zorunludur.
6. İç İçe Koşullu İfadeler (Nested Decisions)
Bazı karmaşık durumlarda, bir ana koşul sağlandıktan sonra kendi içinde farklı alt koşulların da değerlendirilmesi gerekebilir. Buna İç İçe İfadeler (Nested If) denir.
Örnek Uygulama: Detaylı İşe Alım Bir firma, işe alımlarda önce yaşın 40’tan küçük olmasını istiyor. Eğer aday 40 yaşından küçükse, bu kez üniversite mezunu olup olmadığına ve sürücü belgesi olup olmadığına bakıyor.
yas = int(input("Yaşınızı girin: "))
if yas < 40: # Dış (Ana) Koşul
mezuniyet = input("Üniversite mezunu musunuz? (E/H): ")
surucu_belgesi = input("Sürücü belgeniz var mı? (E/H): ")
if mezuniyet == "E" and surucu_belgesi == "E": # İç (Alt) Koşul
print("Tebrikler, işe alındınız.")
else:
print("İşe alınmadınız.")
else:
print("Üzgünüz, yaş kriterimize uymuyorsunuz.")
Bu yapıda, kullanıcı eğer 45 girerse program alt soruları (mezuniyet vb.) hiç sormadan doğrudan en alttaki else bloğuna gider ve programı sonlandırır.
7. Tek Satırda Koşullu İfadeler (Conditional Expressions)
Python, yazılımcılara kolaylık sağlamak için basit if-else yapılarını tek bir satırda yazma imkanı sunar. Buna teknik olarak İngilizcede “Conditional Expressions” veya “Ternary Operator” denir.
Sözdizimi: [Doğruysa Olacak Değer] if [Koşul] else [Yanlışsa Olacak Değer].
Örnek Uygulama: Girilen bir sayının tek mi çift mi olduğunu tek satırda bir değişkene atayalım:
x = 10
sonuc = "Çift" if x % 2 == 0 else "Tek"
print(sonuc) # Çıktı: Çift
Bu yöntem, özellikle bir değişkene şarta bağlı olarak hızlıca değer atamak istediğimizde kod kalabalığını önler ve okumayı kolaylaştırır.
Sonuç: Bu rehberde; Python’un mantıksal zekasını oluşturan if, elif, ve else komutlarını, çoklu şarta bağlı durumları ve iç içe kod mimarisini detaylı örneklerle öğrendiniz. Programlarınızın farklı senaryolara akıllıca uyum sağlaması için koşullu ifadeler yazılım dünyasının en temel anahtarıdır. Bu konuları bilgisayarınızda bol bol test ettikten sonra, yazılımın diğer büyük gücü olan “Döngüler (Loops)” konusunu öğrenmeye artık hazırsınız!





