- Karakter dizileri dâhil karşılaştırmaların sonucunu (
True/False) belirlemek. if’in tam ve eksik biçimini,elifzincirlerini ve iç içe koşulları yazmak; hangi dalın çalıştığını izlemek.and,or,notiçeren bileşik koşulları öncelik sırasına göre hesaplamak.- Tekrarlanan örüntü problemlerini kalan koşullarıyla (
n % k) çözen programlar yazmak.
ATM, PIN doğru girildiğinde para verir, yanlış girildiğinde uyarı gösterir; trafik ışığında yeşilde geçer, kırmızıda dururuz. Program da duruma göre seçim yapmalıdır. Akış şemasında bu, eşkenar dörtgenle çizilen bir dallanmadır (bkz. «Algoritmalar ve akış şemaları» ve «Dallanan algoritmalar»); Python’da ise koşul ifadesi if ile yazılır. 2025–2026 giriş sınavlarının her kitapçığında koşul ifadesine 2–3 soru düştü, bazen bunlardan biri yazılı bir programdı.
Karşılaştırmalar: koşul ne zaman doğrudur?
Koşul, değeri True (doğru) ya da False (yanlış) olan bir ifadedir. En basit koşullar karşılaştırma işleçleriyle kurulur. Dikkat: eşitlik iki eşittir işaretiyle, == şeklinde yazılır; tek = atama demektir.
| İşleç | Anlamı | Örnek |
|---|---|---|
== | eşittir | 7 == 7 → True |
!= | eşit değildir | 7 != 7 → False |
< > | küçüktür, büyüktür | 3 > 8 → False |
<= >= | küçük veya eşit, büyük veya eşit | 8 >= 8 → True |
Karakter dizileri karakter karakter, karakterlerin kodlarına göre karşılaştırılır; tıpkı sözlükteki kelimeler gibi: 'apple' < 'apricot' doğrudur, çünkü üçüncü karakterde p, r’den önce gelir. Büyük harflerin kodları küçük harflerinkinden küçüktür, bu yüzden 'Z' < 'a' de doğrudur. Rakamlardan oluşan karakter dizileri de karakter karakter karşılaştırılır: '10' < '9' doğrudur ('1' < '9'), oysa 10 > 9’dur. Bir sayı bir karakter dizisine asla eşit olmaz: 5 == '5' → False. Python çift eşitsizliğe de izin verir: 10 <= n <= 99 yazımı «n iki basamaklı bir sayıdır» anlamına gelir.
Bir koşulun değeri sıradan bir değerdir: yazdırılabilir (print(7 > 3) → True) ve bir değişkende saklanabilir: even = n % 2 == 0. Burada önce n % 2 == 0 karşılaştırması hesaplanır, sonra True ya da False değeri even değişkenine atanır; ardından if even: yazmak yeterlidir. Uzun koşulları böyle parçalara ayırmak programı okunaklı yapar.
Koşul ifadesinin tam ve eksik biçimi
Eksik biçim yalnızca if bölümünden oluşur: koşul doğruysa blok çalışır, yanlışsa hiçbir şey yapılmaz. Tam biçim if … else şeklindedir: iki daldan mutlaka biri çalışır; koşul doğruysa if bloğu, yanlışsa else bloğu.
Yazım kuralları: koşuldan sonra iki nokta (:) konur, dalın komutları ise girintiyle, genellikle 4 boşlukla yazılır. Aynı girintideki ardışık satırlar bir blok oluşturur: girinti bitince blok da biter. else, kendi if’iyle aynı girintide yazılır. Koşul ifadesinden sonra girintisiz gelen komutlar her iki durumda da çalışır.
n = 38
if n % 5 == 3:
print(n // 5)
else:
print(n % 5)
print('end')▸ Beklenen çıktı
7 end
38 // 5 = 7 yazdırılır. print('end') girintisiz olduğu için her durumda çalışır. n = 41 yazıp yeniden çalıştır: bu kez else dalı çalışacak.x = 12
y = 5
if x % y == 2:
y = x * 2
print(x, y)
x = y - x
y = y + 1
print(x, y)▸ Beklenen çıktı
12 24 12 25
Yukarıdaki program ne yazdıracak? İki satırı da yazın.
Çözümü gösterÇözümü gizle
y = 12 · 2 = 24;
print(x, y) → 12 24; x = 24 − 12 = 12.Bloktan sonra girintisiz komutlar gelir: y = 24 + 1 = 25;
print(x, y) → 12 25.Cevap iki satırdır: 12 24 ve 12 25. Tuzak: girintisiz
y = y + 1 komutunu başlangıçtaki y = 5 ile hesaplayan «12 6» yazar.elif zincirleri ve iç içe koşullar
İkiden fazla seçenek olduğunda elif («else if», yani «değilse, eğer») kullanılır. Koşullar yukarıdan aşağıya denetlenir; ilk doğru koşulun dalı çalışır ve zincirin geri kalanı atlanır, sonraki koşullar doğru olsa bile. Hiçbir koşul doğru değilse sondaki else çalışır (yoksa hiçbir şey yapılmaz). Bu yüzden koşulların sırası önemlidir: if n > 10, elif n > 100’den önce yazılırsa ikinci dal asla çalışmaz.
if … elif … else zinciri: koşullar yukarıdan aşağıya denetlenir, ilk doğru koşulun dalı çalışır, sonra program zincirden sonraki komuta geçer.s = 'k'
b = 'm'
if s == b:
print('A')
elif s < b:
print('B')
elif s == 'k':
print('C')
else:
print('D')▸ Beklenen çıktı
B
s = input() olur.Klavyeden k harfi girilirse yukarıdaki program ne yazdırır?
A) A B) B C) C D) D E) hiçbir şey
Çözümü gösterÇözümü gizle
s == b → 'k' == 'm' ✗.s < b → 'k' < 'm' ✓ (alfabede k, m’den önce gelir) → B yazdırılır.s == 'k' de doğru olduğu hâlde zincirin geri kalanı denetlenmez. Cevap: B.Bir dalın içinde başka bir koşul ifadesi de olabilir; buna iç içe koşul denir. İçteki if, yalnızca dıştaki koşul doğruysa denetlenir. Hangi else’in hangi if’e ait olduğunu yalnızca girinti belirler: else, kendisiyle aynı girintide yazılmış, yukarıdaki en yakın if’e aittir. Sınav programlarında koşullar çoğu zaman 2–3 düzey iç içedir, bu yüzden izlemeyi sistemli yap.
- 1Başlangıç değerlerini yaz
Değişkenleri ve başlangıç değerlerini (giriş değerleri dâhil) bir tabloya aktar.
- 2Koşulu hesapla: ✓ veya ✗
Koşuldaki ifadeyi o anki değerlerle hesapla ve yanına ✓ (doğru) veya ✗ (yanlış) yaz.
- 3✗ ise bloğu atla
Girintisi daha büyük olan tüm satırları atla; aynı girintideki
elif/else’e, o yoksa bloktan sonraki satıra geç. - 4✓ ise bloğa gir
Komutları çalıştır, değişkenleri güncelle ve içteki koşullar için 2–3. adımları tekrarla. Bir dal çalıştıysa o zincirin kalan
elif/elsebölümleri atlanır. - 5Sonraki komutları unutma
Koşul ifadesinden sonraki girintisiz satırlar her zaman çalışır; cevap çoğu zaman tam orada oluşur.
a = 36
b = 14
if a % b > 5:
a = a - b
if a > 2 * b:
b = b + 3
else:
b = b - 3
if b % 2 == 1:
a = a + 1
else:
a = a + b
print(a + b, a - b)▸ Beklenen çıktı
34 12
Yukarıdaki programın sonucunu belirleyin.
A) 39 5 B) 33 11 C) 34 12 D) 58 14 E) 22 11
Çözümü gösterÇözümü gizle
2) a > 2 · b → 22 > 28 ✗ →
else dalı: b = 14 − 3 = 11.3) İçteki koşul: b % 2 == 1 → 11 % 2 = 1 ✓ → a = 22 + 1 = 23.
4) Dıştaki
else atlanır. print(a + b, a - b) → 23 + 11 = 34, 23 − 11 = 12.Cevap: C) 34 12. B seçeneği içteki
if’i unutanlar (a = 22, b = 11), A ise yanlış dalı seçenler (b = 17) içindir.Bileşik koşullar: and, or, not
Birkaç koşul mantıksal işleçlerle birleştirilir: and (ve) iki koşul da doğruysa doğrudur; or (veya) en az biri doğruysa doğrudur; not (değil) koşulun değerini tersine çevirir. Bunlar «Mantık işlemleri ve mantık kapıları» dersindeki ve, veya, değil işlemleridir.
| A | B | A and B | A or B | not A |
|---|---|---|---|---|
True | True | True | True | False |
True | False | False | True | False |
False | True | False | True | True |
False | False | False | False | True |
Öncelik soldan sağa azalır: önce aritmetik, sonra karşılaştırmalar, ardından not, and ve en son or. Emin değilsen parantez kullan; program hem doğru hem okunaklı olur.
Aralıklar için hazır kalıplar: x, [10, 20] aralığındadır — 10 <= x <= 20 (yani x >= 10 and x <= 20); x aralığın dışındadır — x < 10 or x > 20, bu da not (10 <= x <= 20) ile aynıdır. Dikkat: «dışında» koşulunda and yazmak hatadır; hiçbir sayı aynı anda hem 10’dan küçük hem 20’den büyük olamaz, böyle bir koşul her zaman yanlıştır.
x = 7, y = 2 iken hesaplayın: 1) x > 5 or y > 3 and x < 0; 2) not x > 5 and y == 2; 3) (x > 5 or y > 3) and x < 0.
Çözümü gösterÇözümü gizle
and: y > 3 and x < 0 → ✗ ve ✗ = False; sonra x > 5 or False → ✓ veya ✗ = True.2)
not, karşılaştırmadan sonra ama and’den önce yapılır: not (7 > 5) = not True = False; False and … = False.3) Önce parantez:
x > 5 or y > 3 = True; True and x < 0 = ✓ ve ✗ = False.1. ve 3. ifadeler yalnızca parantezle ayrılır, sonuçları ise zıttır.
Program art arda 10 kez çalıştırılıyor ve her seferinde klavyeden bir (s, t) çifti giriliyor: (9, 4); (9, 6); (2, 5); (−1, 3); (8, 8); (0, 0); (12, 9); (−5, −5); (7, 1); (10, 11). Kaç kez Yes yazdırılır? (Azerbaycan sınavında program genellikle «evet» / «hayır» anlamındaki kelimeleri yazdırır.)s = int(input())t = int(input())if s >= 8 and t % 3 != 0 or s < 0: print('Yes')else: print('No')
Çözümü gösterÇözümü gizle
and, or’dan önce yapıldığı için koşul şöyle okunur: (s >= 8 and t % 3 != 0) or s < 0.• s < 0 olan çiftler hemen
Yes verir: (−1, 3), (−5, −5), yani 2 çift.• Diğerlerinde s ≥ 8 olmalı ve t 3’e bölünmemelidir: (9, 4) ✓, (9, 6) ✗ (6 % 3 = 0), (8, 8) ✓, (12, 9) ✗ (9 % 3 = 0), (10, 11) ✓, yani 3 çift.
• (2, 5), (0, 0), (7, 1) çiftlerinde s < 8 →
No.Toplam: 2 + 3 = 5.
pairs = [(9, 4), (9, 6), (2, 5), (-1, 3), (8, 8),
(0, 0), (12, 9), (-5, -5), (7, 1), (10, 11)]
count = 0
for s, t in pairs:
if s >= 8 and t % 3 != 0 or s < 0:
count = count + 1
print(count)▸ Beklenen çıktı
5
for döngüsü (sonraki ders) aynı koşulu 10 çiftin her biri için denetler ve Yes cevaplarını sayar.x = 3
y = 5
if x * y > 15:
print('#')
elif y ** x != 125:
print('# #')
else:
print('# # # #')
if y // x == 1:
print('# # #')▸ Beklenen çıktı
# # # # # # #
Yukarıdaki program çalıştıktan sonra kaç tane # sembolü yazdırılır?
A) 1 B) 3 C) 4 D) 7 E) 10
Çözümü gösterÇözümü gizle
15 > 15 ✗; elif: 5 ** 3 = 125, 125 != 125 ✗ → else: # # # # (4 sembol).İkinci, ayrı
if: y // x = 5 // 3 = 1, 1 == 1 ✓ → # # # (3 sembol).Toplam D) 7. İkinci
if ayrı bir ifadedir ve birincinin sonucundan bağımsız olarak denetlenir.Kalanla kurulan koşullar ve yazılı soru
Sınavın en sevdiği koşullar kalanla kurulur. Onları bir bakışta tanımalısın:
n % 2 == 0— n çifttir;n % 2 == 1— n tektir;n % k == 0— n, k’ye bölünür;n % k != 0— bölünmez;n % 10 == 7— son basamak 7’dir;n // 10 % 10 == 3— onlar basamağı 3’tür;n % 3 == 0 and n % 5 == 0— n, 15’e bölünür;- tekrarlanan örüntü: bir şey her k adımda bir tekrarlanıyorsa
n % k, n’nin örüntüdeki yerini gösterir.
Son fikri yazılı bir soruda uygulayalım. Doğal sayılar 4 sütunlu bir tabloya «yılan» gibi yazılmıştır: tek numaralı satırlarda soldan sağa, çift numaralı satırlarda sağdan sola.
| A | B | C | D |
|---|---|---|---|
| 1 | 2 | 3 | 4 |
| 8 | 7 | 6 | 5 |
| 9 | 10 | 11 | 12 |
| 16 | 15 | 14 | 13 |
| … | … | … | … |
Klavyeden girilen n doğal sayısının (1 ≤ n ≤ 1000) yukarıdaki tablonun hangi sütununda olduğunu bulan Python programını yazın. Örneğin: giriş 6 → çıkış C; 13 → D; 16 → A; 26 → B.
Çözümü gösterÇözümü gizle
2) İlk iki satırdan her kalanın yerini okuruz: r = 1 → A, 2 → B, 3 → C, 4 → D, 5 → D, 6 → C, 7 → B, 0 → A (8, 16, 24, … A sütunundadır).
3) Gruplarız: A — r = 0 veya 1; B — 2 veya 7; C — 3 veya 6; D — kalan 4 ve 5.
4) Bunu bir
if … elif … else zincirine çeviririz (program aşağıda). Kontrol: 26 % 8 = 2 → B ✓, 13 % 8 = 5 → D ✓.n = 26
r = n % 8
if r == 0 or r == 1:
print('A')
elif r == 2 or r == 7:
print('B')
elif r == 3 or r == 6:
print('C')
else:
print('D')▸ Beklenen çıktı
B
n = int(input()) olmalıdır; burada tarayıcıda çalışsın diye n = 26 yazdık. 6, 13 ve 16 ile de dene.Yazılı soruda eksiksiz bir program yazılır: giriş (int(input())), hesaplama (burada kalan ve koşullar) ve çıkış (print). DİM, yazılı soruların puanlama ölçütlerini yayımlamaz; bu yüzden her bölümü açıkça yaz ve programını örnek tablodaki tüm durumlarla, ayrıca «sınır» değerleriyle (burada 8 ve 16 gibi kalanı 0 olan sayılarla) adım adım denetle.
Bir trafik ışığı döngüsel çalışır: her 60 saniyenin ilk 30 saniyesinde yeşil (green), sonraki 5 saniyede sarı (yellow), kalan 25 saniyede kırmızı (red) yanar; sayım 0. saniyeden başlar. Program her an için rengi yazdırsın diye bir if … elif … else yaz (verilen anları dolaşan for döngüsü hazır).
for t in [10, 33, 50, 1000, 1234]:
r = t % 60
colour = '?'
# choose the colour with if / elif / else
print(t, colour)▸ Beklenen çıktı
10 green 33 yellow 50 red 1000 red 1234 yellow
Bir yıl 4’e bölünüp 100’e bölünmüyorsa ya da 400’e bölünüyorsa artık yıldır (366 gün). Program dört yıl için doğru cevabı yazdırsın diye leap değişkenindeki False yerine bu bileşik koşulu yaz.
for y in [2024, 2100, 2000, 2026]:
leap = False # write the condition here
if leap:
print(y, 'Yes')
else:
print(y, 'No')▸ Beklenen çıktı
2024 Yes 2100 No 2000 Yes 2026 No
Önemli noktalar
- Koşul, değeri
Trueya daFalseolan bir ifadedir: eşitlik==, eşitsizlik!=; karakter dizileri kodlarına göre karakter karakter karşılaştırılır ('10' < '9'). - Eksik
if’te dal çalışabilir de çalışmayabilir de; tamif … else’te iki daldan mutlaka biri çalışır. Blok girintiyle belirlenir. if … elif … elsezincirinde yalnızca ilk doğru koşulun dalı çalışır; ayrıififadelerinin her biri kendi başına denetlenir.- Öncelik: aritmetik → karşılaştırma →
not→and→or; emin değilsen parantez kullan. - Tek/çift, bölünebilme ve tekrarlanan örüntüler (sütunlar, günler, trafik ışığı)
n % kkalanıyla dallara ayrılır.
Kendini test et
12 soru. Her doğru cevap XP kazandırır.