Kodlama

Koşullar

if x > 10: · elif · else

01

Karar yapıları ve karşılaştırma operatörleri

Bilgisayar programlarını güçlü kılan şey, farklı durumlara göre farklı kararlar verebilmeleridir. Örneğin bir oyun karakterinin canı sıfıra indiğinde «Oyun Bitti» ekranı gelmeli, canı varsa oyun devam etmelidir. Bu karar mekanizması koşul bloklarıyla kurulur.

Koşul ifadeleri iki değeri birbiriyle karşılaştırır ve sonuç olarak bir boolean (True veya False) üretir. Python’da karşılaştırma için özel operatörler kullanılır.

OperatörAnlamıÖrnek ifadeSonuç
==Eşit midir?5 == 5True
!=Eşit değil midir (farklı mıdır)?5 != 3True
>Büyük müdür?10 > 20False
<Küçük müdür?7 < 12True
>=Büyük veya eşit midir?10 >= 10True
<=Küçük veya eşit midir?4 <= 3False

En kritik kural: Tek eşittir (=) değişkene değer atar; iki değerin eşit olup olmadığını sorgulamak için mutlaka çift eşittir (==) kullanılır.

KısayolUnutmayın: x = 5 değeri kutuya koyar; x == 5 ise «x kutusunun içindeki 5 mi?» diye sorar.

02

if ve else blokları: Girinti kuralı

Python’da bir koşulun doğru (True) olması durumunda çalışacak kodlar if anahtar kelimesiyle tanımlanır. Koşul satırının sonuna mutlaka iki nokta üst üste (:) konur.

Birçok programlama dilinde kod blokları süslü parantezlerle { } belirtilirken, Python’da bu işi girinti (indentation) yapar. if satırının altındaki kodlar 4 boşluk (veya bir Tab tuşu) içeriden yazılır. Koşul sağlandığında yalnız bu girintili satırlar çalışır.

Koşul sağlanmadığında (False olduğunda) devreye girmesi istenen alternatif yol için else kullanılır. else bloğunun kendi koşulu olmaz; «yukarıdaki hiçbir durum olmadıysa bunu yap» anlamına gelir.

SözdizimiSatır sonuna iki nokta (:) koy ve altına yazacağın kodu 4 boşluk içeri girintile.

Örnek. Aşağıdaki kod parçası çalıştırıldığında ekrana ne yazdırır?
yas = 15
if yas >= 18:
    print("Ehliyet alabilir")
else:
    print("Ehliyet alamaz")

  • yas değişkeninin değeri 15’tir.
  • 15 >= 18 koşulu denetlenir; sonuç False’tur.
  • if bloğu atlanır, else bloğu çalıştırılır.
  • Ekrana "Ehliyet alamaz" yazdırılır.

CevapEhliyet alamaz

03

Çoklu koşullar: elif yapısı

Bazen önümüzde ikiden fazla olasılık bulunur (örneğin hava güneşli mi, yağmurlu mu, karlı mı?). Bu tür durumlarda if ile else arasına elif (else if - değilse eğer) blokları yerleştirilir.

Python koşulları yukarıdan aşağıya sırayla test eder. İlk True veren bloğu bulduğu anda o bloğun içindeki kodu çalıştırır ve geri kalan bütün elif ile else bloklarını atlayarak çıkar.

Puan aralığıKoşul ifadesiHarf notu
85 ve üzeriif puan >= 85:A
70 - 84 arasıelif puan >= 70:B
50 - 69 arasıelif puan >= 50:C
50’nin altıelse:Kaldı

Koşulların sırası çok önemlidir. Eğer puan >= 50 en başa yazılırsa, 90 alan bir öğrenci için de ilk koşul sağlanacağından alt basamaklara hiç inilemez.

Örnek. Aşağıdaki kod çalıştırıldığında ekrana ne basılır?
notu = 75
if notu >= 85:
    print("Pekiyi")
elif notu >= 70:
    print("İyi")
elif notu >= 50:
    print("Geçti")
else:
    print("Kaldı")

  • İlk koşul: 75 >= 85 → False.
  • İkinci koşul: 75 >= 70 → True.
  • True bulunduğu için "İyi" yazdırılır.
  • Alttaki diğer elif ve else blokları değerlendirilmeden atlanır.

Cevapİyi

04

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

Tek bir if satırında birden çok şartı birlikte kontrol etmek için mantıksal operatörler kullanılır. Python’da bu operatörler doğrudan İngilizce kelimelerdir: and, or ve not.

OperatörKuralÖrnek kodSonuç
and (ve)Bağlanan tüm koşullar True ise True, biri bile False ise Falseyas > 18 and ehliyet == TrueHer iki şart da sağlanmalı
or (veya)Koşullardan en az biri True ise True, hepsi False ise Falsegun == "Cumartesi" or gun == "Pazar"Biri sağlansa yeterlidir
not (değil)Önüne geldiği koşulun doğruluk değerini tersine çevirirnot (5 > 10)True (çünkü 5>10 False’tur)

Kısayoland bağlacı seçicidir (hepsi doğru olmalı); or bağlacı hoşgörülüdür (tek bir doğru yeterlidir).

Örnek. Aşağıdaki kod parçası ne yazdırır?
x = 10
y = 5
if x > 5 and y > 10:
    print("Durum A")
elif x > 5 or y > 10:
    print("Durum B")
else:
    print("Durum C")

  • x > 5 (10 > 5) True, ancak y > 10 (5 > 10) False. and bağlacı ikisinin de True olmasını ister, ilk if False çıkar.
  • elif satırına geçilir: x > 5 True olduğu için or bağlacı genel sonucu True yapar.
  • Durum B ekrana yazdırılır.

CevapDurum B

05

İç içe koşullar ve yaygın hatalar

Bir if bloğunun içine başka bir if bloğu yazılabilir. Buna iç içe koşul (nested if) denir. İçteki bloğun çalışabilmesi için hem dıştaki hem de içteki koşulun doğru olması gerekir.

  • SyntaxError (İki nokta unutulması): if, elif veya else satırlarının sonuna : konulmazsa Python derlenemez.
  • IndentationError (Girinti hatası): if altındaki kodlar aynı hizada girintilenmelidir. Kimi satır 2 boşluk kimi 4 boşluk olursa hata verir.
  • TypeError (Uyumsuz tip karşılaştırması): Bir metin ile bir sayıyı < veya > ile kıyaslamak (örneğin "18" > 10) Python’da hata üretir.

İç içe çok fazla if yazmak kodun okunmasını zorlaştırır. Mümkün olduğunda iç içe if yerine and operatörü ile tek satırda birleştirmek daha temiz kabul edilir.

İpuçları

Testten önce bunları bil

  1. Eşitlik sorgusunda daima çift eşittir (==) kullanın

    if x = 5 yazmak sözdizimi hatası verir. Doğrusu if x == 5: şeklindedir.

  2. if, elif ve else sonundaki iki noktayı (:) unutmayın

    Satır sonundaki iki nokta Python’a yeni bir girintili bloğun başladığını bildirir.

  3. elif zincirinde sıra hayati önem taşır

    Koşulları en dar ve özel olandan en genel olana doğru sıralayın; ilk True çalışan blok olur.

  4. Girintileri daima 4 boşlukla ve tutarlı yapın

    Bir blok içindeki tüm satırların girinti boşluğu birbirine tam eşit olmalıdır.

  5. and her iki tarafın da True olmasını şart koşar

    and ile bağlanan üç şarttan ikisi doğru biri yanlışsa sonuç False olur.

06

Kendini dene

Cevaba dokun — neden öyle olduğunu birlikte görelim.

Python’da iki değerin birbirine eşit olup olmadığını denetlemek için hangi operatör kullanılır?

Çift eşittir (==) karşılaştırma operatörüdür; tek eşittir (=) ise değer atamak için kullanılır.

Aşağıdaki kod parçası çalıştırıldığında ekrana ne yazdırır?
sayi = 12
if sayi % 2 == 0:
    print("Çift")
else:
    print("Tek")

12 % 2 kalanı 0’dır. 0 == 0 koşulu True olduğu için if bloğu çalışır ve "Çift" yazdırılır.

Aşağıdaki kod parçası çalıştırıldığında ekrana ne yazdırır?
puan = 80
if puan > 90:
    print("A")
elif puan > 70:
    print("B")
elif puan > 50:
    print("C")
else:
    print("D")

80 > 90 False’tur. İkinci basamak 80 > 70 True olduğu için "B" yazdırılır ve altındaki bloklar çalıştırılmadan çıkılır.

Aşağıdaki kod parçası çalıştırıldığında ekrana ne yazdırır?
a = 5
b = 10
if a > 2 and b < 8:
    print("1")
elif a > 2 or b < 8:
    print("2")
else:
    print("3")

a > 2 True fakat b < 8 False olduğundan and bağlacı False üretir. elif basamağında or bağlacı en az bir True (a > 2) yettiği için True üretir ve "2" yazdırılır.

Aşağıdaki kod satırlarından hangisi sözdizimi hatası (SyntaxError) verir?

Koşul içinde atama operatörü (=) kullanılamaz; karşılaştırma için çift eşittir (==) yazılmalıdır.

Aşağıdaki kod parçası çalıştırıldığında ekrana ne yazdırır?
x = False
if not x:
    print("Açık")
else:
    print("Kapalı")

not operatörü değeri tersine çevirir; not False ifadesi True olduğu için if bloğu çalışır ve "Açık" basılır.

Aşağıdaki kod parçası çalıştırıldığında ekrana ne yazdırır?
sicaklik = 25
if sicaklik > 30:
    print("Sıcak")
print("Tamamlandı")

25 > 30 False olduğu için girintili if bloğu çalışmaz. Ancak alttaki print("Tamamlandı") girintisizdir, koşula bağlı değildir ve çalışır.

Python’da bir if veya elif bloğuna ait kodların sınırını belirleyen temel kural nedir?

Python blok yapısını süslü parantezlerle değil girintiyle (indentation) denetler.

Aşağıdaki ifadelerden hangisinin doğruluk değeri False’tur?

7 sayısı 10’dan büyük ya da eşit değildir; dolayısıyla 7 >= 10 ifadesinin sonucu False’tur.

Aşağıdaki kod parçası çalıştırıldığında ekrana ne yazdırır?
yas = 20
uye = True
if yas >= 18:
    if uye:
        print("Giriş serbest")
    else:
        print("Üye olunuz")
else:
    print("Yaş yetersiz")

Dış koşul: 20 >= 18 True’dur ve iç bloğa girilir. İç koşul: uye == True olduğu için içteki ilk blok çalışır ve "Giriş serbest" basılır.

Alıştırma bitti — –

Sıradaki konu: Döngüler.

0/10 · soru cevaplandı

Kendini dene