Ek: Çıktı tahmini soruları
Çıktı tahmini soruları
Bu sayfadaki kodları çalıştırmadan okuyun. Her soru için çıktıyı satır satır yazın, sonra açılır cevapla karşılaştırın. Kod bloklarına bu yüzden çalıştırma düğmesi konmadı.
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; / bölmesi burada float sonuç verir.
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. "3" * 2 metni iki kez yan yana yazar, int("3") * 2 ise sayıyı çarpar.
2.3: int, sonra str.
2.4: -4, sonra 1. // sonucu aşağı, yani eksi sonsuza doğru yuvarlar: -3.5 -4 olur.
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. İlk koşul doğru olduğu için elif koşuluna hiç bakılmaz.
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 += 14.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; 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 dâhil 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. Fonksiyonda return olmadığı için None döner.
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. Fonksiyonun içindeki x ayrı, yerel bir değişkendir.
7.3: 8.
7.4: Kontrol geçti. Koşul doğru olduğu için assert hata vermez.
7.5: önce ['Ada'], sonra ['Ada', 'Ece']. Varsayılan değer olan [] listesi fonksiyon tanımlanırken bir kez oluşturulur ve her çağrıda aynı liste kullanılır. Her çağrıda yeni bir liste istiyorsanız varsayılanı liste=None yapın ve listeyi fonksiyonun içinde oluşturun.
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 (baştaki ve sondaki boşluklar silinir).
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() yeni bir liste döndürür, sayilar değişmez.
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 2’yi bir kez tutar.
10.4: anahtarlar eklendikleri sırayla gelir: 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
Her soruda dosyanın başlangıçtaki içeriği kodun üstünde verildi.
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 dosyadaki eski içeriği silip (truncate) yenisini yazar.
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 * 2main.py:
from yardimci import iki_kati
print(iki_kati(6))13.1: Geçersiz sayı.
13.2: 5.0. Hata çıkmadığı için except çalışmaz, else çalışır.
13.3: ZeroDivisionError, sonra Bitti.
13.4: Hata yakalandı.
13.5: 12. Bunun için main.py, yardimci.py dosyasını bulabilmeli; örneğin iki dosya aynı klasörde olmalı.
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.
Yanlış tahmin ettiğinizde
Yanlış tahmin ettiğiniz soruda doğru çıktıyı ezberlemeyin. Hangi satırda neyi yanlış düşündüğünüzü bir cümleyle yazın. Satırların çalışma sırasını mı, bir değerin türünü mü, bir sınırı mı, döngünün bir adımını mı, iki adın aynı listeyi gösterdiğini mi, yoksa hatanın nerede çıktığını mı kaçırdınız? Bu cümle, benzer bir soruda aynı yanlışı yapmamanıza yardım eder.