İçeriğe geç
Educora
Başlangıç15 dk4 / 42

Koşullar: if, elif, else

Programına karar vermeyi öğret: karşılaştırma işleçleri, if/elif/else ve mantıksal and, or, not.

Kendini test et
Bu derste öğreneceklerin
  • Karşılaştırma işleçleriyle True ya da False sonucu elde etmek
  • if, elif ve else ile dallanan programlar yazmak
  • Koşulları and, or ve not ile birleştirmek

Her gün onlarca karar veririz: yağmur yağıyorsa şemsiye alırız, trafik ışığı kırmızıysa bekleriz, ödev bittiyse oyuna çıkarız. Programlar da böyle çalışır: bir durumu kontrol eder ve sonuca göre farklı adımlar atar. Python'da bunun için koşul ifadeleri kullanılır.

Karşılaştırma işleçleri

Her kararın temelinde “evet” ya da “hayır” ile cevaplanan bir soru vardır. Python'da bu tür sorular karşılaştırma işleçleriyle yazılır ve cevap her zaman mantıksal bir değerdir: True (doğru) ya da False (yanlış).

İşleçAnlamıÖrnek
==eşittir5 == 5 → True
!=eşit değildir5 != 3 → True
>büyüktür2 > 7 → False
<küçüktür2 < 7 → True
>=büyük ya da eşittir7 >= 7 → True
<=küçük ya da eşittir8 <= 7 → False
Python
age = 14
print(age > 12)
print(age == 18)
print(age != 18)
print('Baku' == 'baku')
print(5 <= 5)
▸ Beklenen çıktı
True
False
True
False
True

if ifadesi

if sözcüğünden sonra koşul yazılır, sonuna da iki nokta (:) konur. Koşul True ise altındaki girintili satırlar çalışır; False ise Python onları atlar.

Python
temperature = 32
if temperature > 30:
    print('It is hot today!')
    print('Drink more water.')
print('Have a nice day.')
▸ Beklenen çıktı
It is hot today!
Drink more water.
Have a nice day.
temperature değerini 20 yap ve sonucun nasıl değiştiğine bak.
Tanım
Girinti

Satır başındaki boşluklar. Python'da girinti, hangi satırların bir blok oluşturduğunu gösterir. Genellikle 4 boşluk kullanılır. Örnekteki son satır girintili olmadığı için koşuldan bağımsız olarak her zaman çalışır.

else ve elif

else (“aksi hâlde”), koşul yanlış olduğunda ne yapılacağını belirtir. Örneğin bir sayının çift olup olmadığını 2'ye bölümden kalana bakarak kontrol edebiliriz:

Python
number = 7
if number % 2 == 0:
    print(number, 'is even')
else:
    print(number, 'is odd')
▸ Beklenen çıktı
7 is odd

İkiden fazla seçenek olduğunda elif (“else if” kısaltması) yardıma gelir. Python koşulları yukarıdan aşağıya kontrol eder ve ilk doğru koşulun bloğunu çalıştırır; geri kalanlara bakmaz. Hiçbiri doğru değilse else bloğu çalışır.

Python
score = 78
if score >= 90:
    grade = 'Excellent'
elif score >= 75:
    grade = 'Good'
elif score >= 50:
    grade = 'Satisfactory'
else:
    grade = 'Try again'
print(f'Score {score}: {grade}')
▸ Beklenen çıktı
Score 78: Good
78 hem 75'ten hem de 50'den büyüktür ama yalnızca ilk doğru koşul, yani score >= 75 çalışır.

and, or, not

  • A and B — koşulların ikisi de doğruysa True.
  • A or B — koşullardan en az biri doğruysa True.
  • not A — koşulu tersine çevirir: True, False olur ve tersi.
Python
age = 15
has_ticket = True
is_weekend = False

if age >= 12 and has_ticket:
    print('You can watch the film.')

if is_weekend or age < 7:
    print('Free entry!')
else:
    print('Entry costs 5 AZN.')

if not is_weekend:
    print('See you after school!')
▸ Beklenen çıktı
You can watch the film.
Entry costs 5 AZN.
See you after school!
Etkileşimli
Simülasyon yükleniyor…
Python'daki and, AND kapısı gibi çalışır. OR ve NOT kapılarını da seç ve tablolarını karşılaştır.
Örnek: artık yıl

Bir yıl 4'e bölünüyorsa artık yıldır; ama 100'e bölünen yıllar ancak 400'e de bölünüyorsa artık yıl sayılır. 2024'ün artık yıl olup olmadığını kontrol eden bir koşul yaz.

Çözümü göster
“4'e bölünür ve 100'e bölünmez” kısmını and ile yazarız: year % 4 == 0 and year % 100 != 0.
“ya da 400'e bölünür” kısmını or ile ekleriz: or year % 400 == 0.
Parantezler ilk kısmı bir arada tutar. Sonuç aşağıdaki kodda.
Python
year = 2024
if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:
    print(year, 'is a leap year')
else:
    print(year, 'is not a leap year')
▸ Beklenen çıktı
2024 is a leap year
1900 ve 2000'i de dene: ilki artık yıl değildir, ikincisi ise artık yıldır.
Alıştırma

number değişkenine bak: sayı sıfırdan büyükse positive, küçükse negative, sıfıra eşitse zero yazdır. if, elif ve else kullan. Her dalı denemek için number'ın değerini değiştir.

Alıştırma · Python
number = -7
# print positive, negative or zero
▸ Beklenen çıktı
negative
Alıştırma

Aysel'in puanı score = 83 ve ödevini de yapmış (homework_done = True). Önce notunu yazdır: puan en az 90 ise A, en az 75 ise B, en az 50 ise C, aksi hâlde F. Ardından puan en az 80 ve ödev yapılmışsa ayrı bir satıra Bonus star! yazdır.

Alıştırma · Python
score = 83
homework_done = True
# 1) print A, B, C or F
# 2) print Bonus star! if score >= 80 and the homework is done
▸ Beklenen çıktı
B
Bonus star!

Önemli noktalar

  • Karşılaştırma işleçleri (==, !=, <, >, <=, >=) True ya da False döndürür.
  • if koşulu iki noktayla biter, bloğu ise 4 boşlukla içeriden yazılır.
  • Bir elif zincirinde yalnızca ilk doğru koşulun bloğu çalışır; hiçbiri doğru değilse else çalışır.
  • and iki koşulun da doğru olmasını, or en az birinin doğru olmasını ister; not ise koşulu tersine çevirir.
  • = atamadır, == ise karşılaştırma.

Kendini test et

10 soru. Her doğru cevap XP kazandırır.

1 / 10
10 != 10 ifadesinin sonucu nedir?