Koşullar

if / elif / else ve mantıksal operatörlerle Python’da karar vermeyi öğren.

DERS PUSULASI

Bu sayfayı ne için kullanacaksın?

Ana fikir

Koşullar, bir programın “eğer şu doğruysa şunu yap, değilse başka bir şey yap” diyerek karar vermesini sağlayan yapılardır.

Üretilecek kanıt

Bir sinema bileti fiyatını yaşa göre belirleyen program yaz. Kurallar: Yaş 12’den küçükse: “Çocuk bileti” yaz. Yaş 65 veya üstündeyse: “65+ bileti” yaz. Diğer tüm durumlarda: “Tam bilet” yaz. Şablon: yas = int(input("Yaşını gir: ")) if yas < 12: print("Çocuk bileti") elif yas >= 65: print("65+ bileti") else: print("Tam bilet") Programı çalıştır ve 8, 40, 70…

Kontrol tuzağı

Karşılaştırırken = kullanmak Yanlış: if yas = 12: Bu bir hata verir; çünkü tek = atamadır. Doğrusu if yas == 12: şeklindedir. İki noktayı unutmak if puan >= 90 satırının sonuna : koymazsan Python SyntaxError verir. if , elif , else satırlarının hepsi iki nokta ile biter. Girintiyi karıştırmak Blok içindeki satırlar…

Sonraki bağlantı

For ve While Döngüleri: Aynı adımları elle tekrar tekrar yazmadan, programa bir işi kaç kez yapacağını söylemeyi öğreneceğiz.

Modül kaynakları: Python Tutorial · Arduino Learn

SeviyeBaşlangıç
Yaş10–16
Süre30–45 dk
Ön koşulKullanıcıdan Veri Alma
İçerikStandart ders · 1.401 kelime
Son güncelleme

Bir cümlelik özet

Koşullar, bir programın “eğer şu doğruysa şunu yap, değilse başka bir şey yap” diyerek karar vermesini sağlayan yapılardır.

Neden önemli?

Şimdiye kadar yazdığımız programlar hep yukarıdan aşağıya, tek bir yolda ilerledi. Ama gerçek programlar sürekli karar verir. Bir oyun, canın bittiğinde “Oyun bitti” yazar. Bir sınav uygulaması, puanına göre farklı bir mesaj gösterir. Bir robot, önündeki engel yakınsa durur.

Scratch modülünde “eğer / değilse” bloklarını kullanmıştık. Python’da da aynı fikir var; sadece bloklar yerine kelimeler ve girinti kullanıyoruz. Bu dersin sonunda programın, gelen veriye göre farklı davranmasını sağlayabileceksin.

if / else ve girintiyle blok

Python’da bir karar if (eğer) kelimesiyle başlar. if kelimesinden sonra bir koşul yazarız; koşul doğruysa (True) altındaki satırlar çalışır.

Basit bir örnek:

yas = 15

if yas >= 13:
    print("Bu içeriği görebilirsin.")

Burada dikkat edilecek iki şey var:

Girinti Python’da süs değildir; blokların sınırını girinti belirler. İçeri girmiş satırlar koşulun içindedir; hizaya geri dönen satırlar koşulun dışındadır.

Koşul yanlışsa (False) başka bir şey yapmak istersek else (değilse) ekleriz:

yas = 10

if yas >= 13:
    print("Bu içeriği görebilirsin.")
else:
    print("Bu içerik için biraz daha büyümen gerekiyor.")

Bu programda yalnızca bir mesaj yazılır: koşul doğruysa ilki, değilse ikincisi.

Karşılaştırma operatörleri

Bir koşul çoğu zaman iki değeri karşılaştırır. Bunun için karşılaştırma operatörlerini kullanırız. Her biri True ya da False üretir.

Karşılaştırma operatörleri tablosu
OperatörAnlamıÖrnekSonuç
==eşit mi5 == 5True
!=eşit değil mi5 != 3True
<küçük mü3 < 5True
>büyük mü3 > 5False
<=küçük ya da eşit mi5 <= 5True
>=büyük ya da eşit mi4 >= 5False

Buradaki en sık karışan nokta şudur: tek = bir değeri atamak için kullanılır, çift == ise iki değeri karşılaştırmak için.

yas = 12          # atama: yas değişkenine 12 koy
print(yas == 12)  # karşılaştırma: yas 12'ye eşit mi? -> True
print(yas != 10)  # True
print(yas < 18)   # True
print(yas >= 13)  # False

Örnek: Çift mi tek mi?

Bir sayının çift olup olmadığını % (mod, kalan) operatörüyle anlarız. % bölme işleminden kalanı verir. Bir sayı 2’ye tam bölünüyorsa (kalan 0 ise) çifttir.

sayi = int(input("Bir sayı gir: "))

if sayi % 2 == 0:
    print("Çift sayı")
else:
    print("Tek sayı")

Örneğin 8 girersen 8 % 2 sonucu 0’dır, koşul doğrudur ve “Çift sayı” yazılır. 7 girersen 7 % 2 sonucu 1’dir, koşul yanlıştır ve else çalışır.

elif ile birden çok yol

Bazen iki değil, üç veya daha fazla yol vardır. elif (else if / “değilse eğer”) ile birden çok koşulu sırayla kontrol edebiliriz.

Python koşulları yukarıdan aşağıya dener. İlk doğru olan koşulun bloğu çalışır, geri kalanlara bakılmaz.

Örnek: Sınav puanını değerlendirme.

puan = int(input("Sınav puanını gir: "))

if puan >= 90:
    print("Pekiyi")
elif puan >= 70:
    print("İyi")
else:
    print("Geliştirebileceğin bir alan var")

Burada sıra önemlidir. 95 girersen ilk koşul (>= 90) doğrudur ve “Pekiyi” yazılır. 75 girersen ilk koşul yanlış, elif puan >= 70 doğrudur ve “İyi” yazılır. 40 girersen hiçbiri doğru olmadığı için else çalışır.

Koşulları yüksekten alçağa doğru sıraladığımıza dikkat et. elif puan >= 70 satırını en üste koysaydık, 95 gibi yüksek puanlar da “İyi” olurdu; çünkü 95 zaten 70’ten büyüktür ve ilk doğru koşulda durulur.

Mantıksal operatörler: and / or / not

Bazen bir karar tek bir koşula değil, birkaç koşula birden bağlıdır. Bunları birleştirmek için mantıksal operatörleri kullanırız.

yas = 15
izin_var = True

if yas >= 13 and izin_var:
    print("Etkinliğe katılabilirsin.")

if not izin_var:
    print("Önce izin alman gerekiyor.")

İlk koşul, hem yaşın 13 veya üstü olmasını hem de iznin olmasını ister; ikisi de doğru olmalı. or ise seçenek sunar:

hava = "yağmurlu"

if hava == "yağmurlu" or hava == "karlı":
    print("Yanına bir şemsiye al.")

Burada hava “yağmurlu” veya “karlı” ise mesaj yazılır; ikisinden biri yeterlidir.

Mini uygulama

Bir sinema bileti fiyatını yaşa göre belirleyen program yaz. Kurallar:

Şablon:

yas = int(input("Yaşını gir: "))

if yas < 12:
    print("Çocuk bileti")
elif yas >= 65:
    print("65+ bileti")
else:
    print("Tam bilet")

Programı çalıştır ve 8, 40, 70 gibi farklı değerlerle dene. Sonra sen bir kural daha ekle: yaş tam 12 ise ne olmalı? Kodun bu durumda ne yazdığını kontrol et ve mantığı istediğin gibi düzelt.

Uygulama laboratuvarı: Koşullar

Koşullar konusunu kalıcı hâle getirmenin en iyi yolu, kavramı küçük ve ölçülebilir bir göreve dönüştürmektir. Bu çalışmada if / else ve girintiyle blok ile Örnek: Çift mi tek mi? arasındaki ilişkiyi kullanarak çalışan kısa bir Python 3 programı, örnek girdiler ve beklenen çıktılar hazırlayacaksın. Amaç yalnız sonucun çalışması değil; hangi kararı neden verdiğini, neyi test ettiğini ve hangi durumda tasarımı değiştireceğini açıklayabilmektir.

Görev senaryosu

Şu senaryoyu ele al: belirli aralıktaki sayıyı tahmin ettiren küçük oyun. Dersin ana hedefi “if / elif / else ve mantıksal operatörlerle Python’da karar vermeyi öğren” olduğuna göre önce problemi tek cümleyle tanımla. Ardından sistemin alacağı girdiyi, uygulayacağı işlemi ve üreteceği çıktıyı ayrı ayrı yaz. Bilmediğin bir ayrıntı varsa onu varsayım olarak işaretle; varsayımı gerçek bilgi gibi kullanma.

  1. Planla: Başlangıç durumunu, beklenen sonucu ve kullanacağın kavramları yaz.
  2. En küçük sürümü kur: Yalnız temel davranışı çalıştır; süsleme ve ek özellikleri sonraya bırak.
  3. Üç test hazırla: Normal bir durum, sınırda bir durum ve hatalı ya da beklenmeyen bir durum seç.
  4. Sonucu kaydet: Beklenen ile gerçekleşeni yan yana yaz; fark varsa olası nedeni belirt.
  5. Tek değişiklik yap: Aynı anda birçok şeyi değiştirmek yerine bir kararı düzeltip testi yeniden çalıştır.

Başarı ölçütleri

“Koşullar” çalışmasını bitirdiğinde ürünü bir arkadaşına yalnız bölüm başlıklarıyla anlat. Arkadaşın belirli aralıktaki sayıyı tahmin ettiren küçük oyun senaryosundaki adımları ve karar nedenlerini takip edebiliyorsa anlatım yeterince açıktır. Anlaşılmayan noktayı daha fazla terim ekleyerek değil, if / else ve girintiyle blok ve Örnek: Çift mi tek mi? ilişkisini daha küçük adımlara bölerek düzelt.

Sık yapılan hatalar

Karşılaştırırken = kullanmak

Yanlış: if yas = 12: Bu bir hata verir; çünkü tek = atamadır. Doğrusu if yas == 12: şeklindedir.

İki noktayı unutmak

if puan >= 90 satırının sonuna : koymazsan Python SyntaxError verir. if, elif, else satırlarının hepsi iki nokta ile biter.

Girintiyi karıştırmak

Blok içindeki satırlar aynı miktarda içeride olmalı. Bir satırı 4, diğerini 3 boşluk içeri yazarsan IndentationError alırsın. Her zaman 4 boşluk kullan ve tutarlı ol.

elif sırasını yanlış kurmak

Koşulları yanlış sırada yazarsan yüksek bir puan bile alt basamağa düşebilir. Genellikle en dar veya en yüksek koşulu en üste koymak gerekir.

Güvenlik notu

Kod öğrenirken yalnızca kendi yazdığın veya güvendiğin kaynaklardan gelen kodu çalıştır. İnternette bulduğun tanımadığın kodları anlamadan çalıştırma. Ayrıca programların input ile isteyeceği bilgilerde gerçek adres, şifre gibi kişisel verilerini yazma; alıştırmalarda sayılar ve takma değerler yeterlidir.

Ders özeti

Kontrol soruları

  1. if bloğunun altındaki satırların çalışması için koşulun hangi değeri üretmesi gerekir?
  2. = ile == arasındaki fark nedir?
  3. puan = 75 iken aşağıdaki kod ne yazar?
   if puan >= 90:
       print("Pekiyi")
   elif puan >= 70:
       print("İyi")
   else:
       print("Geliştirebileceğin bir alan var")
  1. sayi % 2 == 0 koşulu neyi kontrol eder?
  2. yas >= 13 and izin_var ifadesinin True olması için hangi koşullar sağlanmalıdır?

Cevaplar

  1. Koşulun True (doğru) değerini üretmesi gerekir. Koşul False ise blok atlanır.
  2. Tek = bir değeri değişkene atamak için, çift == iki değerin eşit olup olmadığını karşılaştırmak için kullanılır.
  3. “İyi” yazar. İlk koşul (75 >= 90) yanlıştır, ikinci koşul (75 >= 70) doğrudur ve orada durulur.
  4. Sayının 2’ye bölümünden kalanın 0 olup olmadığını, yani sayının çift olup olmadığını kontrol eder.
  5. Hem yas değeri 13 veya daha büyük olmalı hem de izin_var True olmalıdır. and ile iki koşul da sağlanmalıdır.

Kaynak ve doğrulama notu

“Koşullar” dersi için doğrulama odağı if / else ve girintiyle blok ile Örnek: Çift mi tek mi? arasındaki ilişkinin örnekler üzerinde tutarlı çalışmasıdır. Kod örnekleri Python 3 sözdizimi esas alınarak hazırlanmıştır. Çalıştırma ortamına göre küçük farklar görülebileceği için örnekler önce güvenli bir çevrim içi editörde veya yerel geliştirme ortamında denenmelidir.

Sonraki ders

For ve While Döngüleri: Aynı adımları elle tekrar tekrar yazmadan, programa bir işi kaç kez yapacağını söylemeyi öğreneceğiz.

Quiz’i BaşlatPython Temelleri bölümüne dön
SORU HAVUZU

Bu dersi 10 soruyla pekiştir

Bu ders için 20 soruluk bir havuz hazırlandı. Her başlangıçta 10 soru ve seçenekler yeniden karıştırılır.