Ek Çalışma — Çıktı Tahmin Havuzu

Çıktı tahmin havuzu

Bu sayfadaki kodları önce çalıştırmadan okuyun. Her soru için çıktıyı satır satır yazın; ardından açılır cevapla karşılaştırın. Kod blokları özellikle çalıştırma düğmesi içermez.

Bölüm 1 — Program ve ilk Python kodu

1.1

print("Bir")
print("İki")

1.2

print(2 + 3)
print(2 * 3)

1.3

print("Python", "dersi")
print("bitti")

1.4

print("A")
print("B", "C")
print("D")

1.5

print(10 - 4)
print(10 / 2)

1.1: Bir ve İki, iki ayrı satır.
1.2: 5 ve 6.
1.3: ilk satır Python dersi, ikinci satır bitti.
1.4: A, sonra B C, sonra D.
1.5: 6 ve 5.0; / işlemi bu örnekte float sonuç üretir.

Bölüm 2 — Değişkenler, türler ve ifadeler

2.1

puan = 40
puan = puan + 10
print(puan)

2.2

adet = "3"
print(adet * 2)
print(int(adet) * 2)

2.3

x = 7
print(type(x).__name__)
x = "7"
print(type(x).__name__)

2.4

sayi = -7
print(sayi // 2)
print(sayi % 2)

2.5

fiyat = 25
adet = 3
toplam = fiyat * adet
print(f"Toplam: {toplam} TL")

2.1: 50.
2.2: önce 33, sonra 6; metin tekrarı ile sayısal çarpma farklıdır.
2.3: int, sonra str.
2.4: -4, sonra 1; Python taban bölmeyi aşağı yuvarlar.
2.5: Toplam: 75 TL.

Bölüm 3 — Koşullar ve girdi doğrulama

3.1

puan = 50
if puan >= 50:
    print("Geçti")
else:
    print("Kaldı")

3.2

yas = 18
if yas > 18:
    print("A")
elif yas == 18:
    print("B")
else:
    print("C")

3.3

notu = 85
if notu >= 50:
    print("Geçer")
elif notu >= 85:
    print("Pekiyi")

3.4

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

3.5

puan = 105
if 0 <= puan <= 100:
    print("Geçerli")
else:
    print("Geçersiz")

3.1: Geçti.
3.2: B.
3.3: yalnız Geçer; ilk doğru dal çalıştıktan sonra elif değerlendirilmez.
3.4: Tek.
3.5: Geçersiz.

Bölüm 4 — while ve kod izleme

4.1

sayac = 1
while sayac <= 3:
    print(sayac)
    sayac += 1

4.2

sayi = 3
while sayi > 0:
    print(sayi)
    sayi -= 1
print("Son:", sayi)

4.3

i = 0
toplam = 0
while i < 4:
    toplam += i
    i += 1
print(toplam)

4.4

x = 1
while x < 10:
    x *= 2
print(x)

4.5

sayac = 0
while sayac < 3:
    sayac += 1
print("Bitti", sayac)

4.1: 1, 2, 3.
4.2: 3, 2, 1, ardından Son: 0.
4.3: 6 (0 + 1 + 2 + 3).
4.4: 16.
4.5: Bitti 3 yalnız bir kez yazdırılır; print döngünün dışındadır.

Bölüm 5 — for, range ve döngü kalıpları

5.1

for i in range(3):
    print(i)

5.2

for i in range(1, 5):
    print(i, end=" ")

5.3

toplam = 0
for sayi in range(2, 7, 2):
    toplam += sayi
print(toplam)

5.4

bulundu = False
for sayi in [3, 8, 5]:
    if sayi == 8:
        bulundu = True
print(bulundu)

5.5

adet = 0
for harf in "Python":
    if harf == "o":
        adet += 1
print(adet)

5.1: 0, 1, 2.
5.2: 1 2 3 4; bitiş değeri 5 dahil değildir.
5.3: 12 (2 + 4 + 6).
5.4: True.
5.5: 1.

Bölüm 6 — Fonksiyonlara giriş

6.1

def iki_kati(x):
    return x * 2

print(iki_kati(4))

6.2

def selamla(ad):
    print("Merhaba", ad)

sonuc = selamla("Deniz")
print(sonuc)

6.3

def topla(a, b):
    return a + b

x = topla(2, 3)
print(x + 1)

6.4

def isaret(sayi):
    if sayi >= 0:
        return "pozitif veya sıfır"
    return "negatif"

print(isaret(-2))

6.5

def yaz():
    print("İçerisi")

print("Önce")
yaz()
print("Sonra")

6.1: 8.
6.2: önce Merhaba Deniz, sonra None; fonksiyon açık bir değer döndürmez.
6.3: 6.
6.4: negatif.
6.5: Önce, İçerisi, Sonra.

Bölüm 7 — Fonksiyon tasarımı ve doğrulama

7.1

def indirim(fiyat, oran=0.10):
    return fiyat * (1 - oran)

print(indirim(100))
print(indirim(100, 0.20))

7.2

x = 10

def goster():
    x = 3
    print(x)

goster()
print(x)

7.3

def ekle(sayi, artis=1):
    return sayi + artis

print(ekle(5, artis=3))

7.4

def mutlak(sayi):
    if sayi < 0:
        return -sayi
    return sayi

assert mutlak(-4) == 4
print("Kontrol geçti")

7.5

def kaydet(ad, liste=[]):
    liste.append(ad)
    return liste

print(kaydet("Ada"))
print(kaydet("Ece"))

7.1: 90.0 ve 80.0.
7.2: 3, sonra 10; fonksiyondaki x yereldir.
7.3: 8.
7.4: Kontrol geçti; assert hata üretmez.
7.5: önce ['Ada'], sonra ['Ada', 'Ece']. Varsayılan [] liste fonksiyon tanımlanırken bir kez oluşturulur ve sonraki çağrılarda yeniden kullanılır. Bağımsız liste isteniyorsa güvenli kalıp liste=None deyip fonksiyon içinde yeni liste oluşturmaktır.

Bölüm 8 — String işlemleri

8.1

metin = "Python"
print(metin[0])
print(metin[-1])

8.2

metin = "programlama"
print(metin[0:4])
print(len(metin))

8.3

ad = "  Ayşe Yılmaz  "
print(ad.strip())

8.4

kod = " blp101 "
print(kod.strip().upper())

8.5

kelimeler = "bir iki üç".split()
print(kelimeler)
print("-".join(kelimeler))

8.1: P ve n.
8.2: prog ve 11.
8.3: Ayşe Yılmaz (uç boşluklar kaldırılır).
8.4: BLP101.
8.5: ['bir', 'iki', 'üç'], ardından bir-iki-üç.

Bölüm 9 — Listeler, demetler ve referanslar

9.1

sayilar = [10, 20, 30]
sayilar.append(40)
print(sayilar)

9.2

a = [1, 2]
b = a
b[0] = 9
print(a)
print(b)

9.3

a = [1, 2]
b = a.copy()
b.append(3)
print(a)
print(b)

9.4

veri = (4, 5, 6)
print(veri[1])
print(len(veri))

9.5

sayilar = [3, 1, 2]
yeni = sorted(sayilar)
print(sayilar)
print(yeni)

9.1: [10, 20, 30, 40].
9.2: iki satırda da [9, 2]; a ve b aynı listeyi gösterir.
9.3: [1, 2], sonra [1, 2, 3].
9.4: 5, sonra 3.
9.5: önce [3, 1, 2], sonra [1, 2, 3]; sorted() özgün listeyi yerinde değiştirmez.

Bölüm 10 — Sözlükler, kümeler ve koleksiyon seçimi

10.1

stok = {"kalem": 3, "defter": 2}
print(stok["kalem"])

10.2

sayac = {}
for harf in "aba":
    sayac[harf] = sayac.get(harf, 0) + 1
print(sayac)

10.3

a = {1, 2, 2, 3}
print(len(a))
print(2 in a)

10.4

urun = {"ad": "Kalem", "stok": 0}
for anahtar, deger in urun.items():
    print(anahtar, deger)

10.5

stok = {"A": 5}
print(stok.get("B", 0))
print("A" in stok)

10.1: 3.
10.2: {'a': 2, 'b': 1}.
10.3: 3, sonra True; küme tekrar eden 2yi tek öğe olarak tutar.
10.4: ekleme sırasına göre ad Kalem, sonra stok 0.
10.5: 0, sonra True.

Bölüm 11 — İç içe kayıtlar ve küçük veri işleme

11.1

ogrenci = {"ad": "Ada", "notlar": [60, 80]}
print(ogrenci["ad"])
print(sum(ogrenci["notlar"]) / len(ogrenci["notlar"]))

11.2

ogrenciler = [
    {"ad": "Ada", "puan": 70},
    {"ad": "Can", "puan": 45},
]
print(ogrenciler[1]["ad"])

11.3

urunler = [
    {"ad": "Kalem", "stok": 0},
    {"ad": "Defter", "stok": 4},
]
for urun in urunler:
    if urun["stok"] == 0:
        print(urun["ad"])

11.4

kayit = {"ad": "Ece", "notlar": [90, 100]}
kayit["notlar"].append(80)
print(len(kayit["notlar"]))

11.5

veriler = [
    {"kategori": "A", "deger": 2},
    {"kategori": "A", "deger": 3},
    {"kategori": "B", "deger": 5},
]
toplam = 0
for kayit in veriler:
    if kayit["kategori"] == "A":
        toplam += kayit["deger"]
print(toplam)

11.1: Ada, sonra 70.0.
11.2: Can.
11.3: Kalem.
11.4: 3.
11.5: 5.

Bölüm 12 — Dosyalar ve basit CSV

Bu beş soruda dosyanın başlangıç içeriği ayrıca verilmiştir.

12.1

puanlar.txt dosyası:

10
20
30

Kod:

with open("puanlar.txt", "r", encoding="utf-8") as dosya:
    satirlar = dosya.readlines()
print(len(satirlar))

12.2

ad.txt dosyası tek satır içeriyor: Ada\n

with open("ad.txt", "r", encoding="utf-8") as dosya:
    ad = dosya.readline().strip()
print(ad.upper())

12.3

sayilar.txt dosyası:

4
6
toplam = 0
with open("sayilar.txt", "r", encoding="utf-8") as dosya:
    for satir in dosya:
        toplam += int(satir.strip())
print(toplam)

12.4

urun.csv dosyası tek satır içeriyor: Kalem,12,3

with open("urun.csv", "r", encoding="utf-8") as dosya:
    ad, fiyat, adet = dosya.readline().strip().split(",")
print(ad)
print(int(fiyat) * int(adet))

12.5

not.txt başlangıçta Eski içeriyor.

with open("not.txt", "w", encoding="utf-8") as dosya:
    dosya.write("Yeni")
with open("not.txt", "r", encoding="utf-8") as dosya:
    print(dosya.read())

12.1: 3.
12.2: ADA.
12.3: 10.
12.4: Kalem, sonra 36.
12.5: Yeni; w kipi önceki içeriği değiştirir/truncate eder.

Bölüm 13 — İstisnalar, modüller ve hata ayıklama

13.1

try:
    sayi = int("abc")
    print(sayi)
except ValueError:
    print("Geçersiz sayı")

13.2

try:
    sonuc = 10 / 2
except ZeroDivisionError:
    print("Sıfıra bölme")
else:
    print(sonuc)

13.3

try:
    print(10 / 0)
except ZeroDivisionError as hata:
    print(type(hata).__name__)
finally:
    print("Bitti")

13.4

def pozitif(sayi):
    if sayi <= 0:
        raise ValueError("Pozitif olmalı")
    return sayi

try:
    print(pozitif(0))
except ValueError:
    print("Hata yakalandı")

13.5

yardimci.py dosyasında şu fonksiyon vardır:

def iki_kati(x):
    return x * 2

main.py:

from yardimci import iki_kati
print(iki_kati(6))

13.1: Geçersiz sayı.
13.2: 5.0; except çalışmaz, else çalışır.
13.3: ZeroDivisionError, sonra Bitti.
13.4: Hata yakalandı.
13.5: 12 (dosyalar aynı uygun çalışma/import bağlamındaysa).

Bölüm 14 — Bütünleştirici mikro uygulama

14.1

def ortalama(notlar):
    if not notlar:
        return None
    return sum(notlar) / len(notlar)

print(ortalama([50, 70]))
print(ortalama([]))

14.2

kayitlar = [
    {"ad": "Ada", "puan": 80},
    {"ad": "Ece", "puan": 40},
]
basarili = []
for kayit in kayitlar:
    if kayit["puan"] >= 50:
        basarili.append(kayit["ad"])
print(basarili)

14.3

def gecerli_puanlar(puanlar):
    sonuc = []
    for puan in puanlar:
        if 0 <= puan <= 100:
            sonuc.append(puan)
    return sonuc

print(gecerli_puanlar([80, -1, 100, 120]))

14.4

def durum(puan):
    return "Başarılı" if puan >= 50 else "Başarısız"

for puan in [49, 50, 51]:
    print(puan, durum(puan))

14.5

notlar = {"Ada": [70, 90], "Ece": [40, 50]}
for ad, puanlar in notlar.items():
    ortalama = sum(puanlar) / len(puanlar)
    if ortalama >= 60:
        print(ad)

14.1: 60.0, sonra None.
14.2: ['Ada'].
14.3: [80, 100].
14.4: 49 Başarısız, 50 Başarılı, 51 Başarılı.
14.5: yalnız Ada.

Nasıl çalışılmalı?

Yanlış tahmin ettiğiniz soruda doğru çıktıyı ezberlemeyin. Hangi satırdaki çalışma modeli, tür, sınır, döngü adımı, referans veya hata davranışını yanlış düşündüğünüzü bir cümleyle yazın. Bu kısa açıklama, sonraki benzer soruda aynı hatayı tekrarlamamanızı sağlar.

Back to top