Python ile Programlama Temelleri: Çalışma Soruları ve Çözümleri

Merhaba arkadaşlar! Bu yazımızda, 9. Sınıf müfredatına uygun, Python programlama dilinin temel kavramlarını kapsayan 50 soruluk dev bir çalışma kağıdı hazırladık. Bu sorular hem yazılı sınavlara hazırlıkta hem de konuyu pekiştirmede size rehberlik edecektir.

Bölüm 1: Değişkenler, Veri Tipleri ve IDE Kavramı

Soru 1: Python'da değişken tanımlarken sayı ile başlanabilir mi? Örnek veriniz.

Cevap: Hayır, başlanamaz. Örneğin 1sayi = 10 yanlıştır, sayi1 = 10 doğrudur.

Soru 2: x = "5", y = 5 ve z = 5.0 değişkenlerinin veri tiplerini yazınız.

Cevap: x -> str (string), y -> int (integer), z -> float.

Soru 3: IDE (Bütünleşik Geliştirme Ortamı) nedir? İki örnek veriniz.

Cevap: Yazılımcıların kod yazmasını, hata ayıklamasını ve çalıştırmasını kolaylaştıran araçlardır. Örnek: PyCharm, VS Code, Thonny.

Soru 4: Sabit (Constant) nedir? Python'da sabitler genellikle nasıl isimlendirilir?

Cevap: Değeri program boyunca değişmeyen verilerdir. Genellikle tamamen büyük harfle yazılırlar. Örn: PI_SAYISI = 3.14.

Soru 5: Aşağıdaki değişken isimlerinden hangileri hatalıdır? ad-soyad, ogrenci_no, class, sayi 1.

Cevap: > * ad-soyad (Tire işareti kullanılamaz)

  • class (Python'un özel anahtar kelimesidir)

  • sayi 1 (Boşluk bırakılamaz)


Bölüm 2: Operatörler ve Matematiksel İşlemler

Soru 6: 10 / 4 ile 10 // 4 işlemleri arasındaki fark nedir?

Cevap: / normal bölme yapar ve sonuç 2.5 (float) olur. // tam sayı bölmesi yapar ve sonuç 2 (int) olur.

Soru 7: 2 ** 5 işleminin sonucu kaçtır?

Cevap: 32 (2'nin 5. kuvveti).

Soru 8: Mod alma operatörü (%) ne işe yarar?

Cevap: Bir sayının başka bir sayıya bölümünden kalan sonucu verir.

Soru 9: a = 5, a += 3, a *= 2 işlemlerinden sonra a değişkeninin son değeri nedir?

Cevap: Önce 5+3=8, sonra 8*2=16. Sonuç: 16.

Soru 10: (4 + 8) / 2 ** 2 işleminin sonucu nedir?

Cevap: İşlem önceliğine göre; 12 / 4 = 3.0.


Bölüm 3: Mantıksal Operatörler ve Karşılaştırma

Soru 11: 5 == "5" ifadesinin sonucu nedir?

Cevap: False. Çünkü biri tam sayı diğeri metindir.

Soru 12: (10 > 5) and (3 < 1) ifadesinin sonucu nedir?

Cevap: True and False -> False.

Soru 13: not (8 != 8) ifadesinin sonucu nedir?

Cevap: not (False) -> True.

Soru 14: a is b operatörü neyi kontrol eder?

Cevap: İki değişkenin bellekte aynı nesne olup olmadığını (kimlik kontrolü) kontrol eder.


Bölüm 4: String (Metin) İşlemleri ve Kullanıcıdan Veri Alma

Soru 15: Kullanıcıdan veri almak için hangi fonksiyon kullanılır?

Cevap: input() fonksiyonu.

Soru 16: input() ile alınan bir sayıyı tam sayıya çeviren kodu yazınız.

Cevap: sayi = int(input("Bir sayı giriniz: "))

Soru 17: metin = "Merhaba" ise metin[0] ve metin[-1] çıktıları nedir?

Cevap: metin[0] -> "M", metin[-1] -> "a".

Soru 18: İki metni birleştiren ve araya boşluk koyan kodu yazınız.

Cevap: print(metin1 + " " + metin2)

Soru 19: len("Bilişim") komutunun çıktısı nedir?

Cevap: 7.


Bölüm 5: Listeler (List) ve Metodlar

Soru 20: liste = [1, 2, 3] listesine 4 elemanını ekleyen kodu yazınız.

Cevap: liste.append(4)

Soru 21: renkler = ["mavi", "yeşil", "kırmızı"] listesinde "yeşil" elemanını silen kodu yazınız.

Cevap: renkler.remove("yeşil") veya del renkler[1].

Soru 22: Bir listeyi alfabetik olarak sıralayan metod hangisidir?

Cevap: sort() metodu.

Soru 23: liste[1:4] ifadesi neyi ifade eder?

Cevap: Listenin 1. indeksinden başlayıp 4. indekse kadar (4 dahil değil) olan elemanlarını alır.

Soru 24: liste.pop() komutu ne yapar?

Cevap: Listenin en sonundaki elemanı siler ve onu döndürür.


Bölüm 6: Demetler, Sözlükler ve Kümeler

Soru 25: Tuple (Demet) ile Liste arasındaki en önemli fark nedir?

Cevap: Tuple'lar tanımlandıktan sonra değiştirilemezler (immutable), listeler değiştirilebilir.

Soru 26: Bir sözlük (dictionary) yapısı oluşturup "anahtar" ve "değer" ekleyiniz.

Cevap: sozluk = {"Ad": "Can", "No": 101}

Soru 27: Set (Küme) veri tipinde aynı elemandan iki tane bulunabilir mi?

Cevap: Hayır, her eleman benzersizdir (tekrar etmez).

Soru 28: Sözlükteki tüm anahtarları listelemek için hangi metod kullanılır?

Cevap: sozluk.keys()


Bölüm 7: Uygulama Soruları (Kod Yazma)

Soru 29: Girilen 3 sınav notunun ortalamasını bulan Python kodunu yazınız.

Python
not1 = int(input("1. Not: "))
not2 = int(input("2. Not: "))
not3 = int(input("3. Not: "))
ort = (not1 + not2 + not3) / 3
print("Ortalamanız:", ort)

Soru 30: Kullanıcının adını alıp ekrana 5 kez yazdıran kodu yazınız.

Python
ad = input("Adınız: ")
print((ad + "\n") * 5)

Soru 31: Dikdörtgenin kısa ve uzun kenarını kullanıcıdan alıp çevresini hesaplayan kodu yazınız.

Python
kisa = int(input("Kısa kenar: "))
uzun = int(input("Uzun kenar: "))
cevre = 2 * (kisa + uzun)
print("Çevre:", cevre)

(Not: Blogger yazısının devamında kalan 19 soruyu benzer formatta çeşitlendirerek (örneğin: range(), list.count(), isnumeric() gibi detay metodlar) ekleyebilirsin.)


Soru 32: Dairenin Alanını Hesaplama

Kullanıcıdan yarıçap (r) bilgisini alarak dairenin alanını hesaplayan kodu yazınız. (π = 3.14)

Python:

r = float(input("Yarıçapı giriniz: "))
alan = 3.14 * (r ** 2)
print("Dairenin Alanı:", alan)

Soru 33: İki Sayının Yerini Değiştirme (Swap)

a = 10 ve b = 20 olarak verilen iki değişkenin değerlerini birbiriyle yer değiştiren kodu yazınız.

Python:

a = 10
b = 20
a, b = b, a # Pythonik yöntem
print("a:", a, "b:", b)

Soru 34: Kelimeyi Tersten Yazdırma

Kullanıcının girdiği bir kelimeyi (String slicing kullanarak) tersten ekrana yazdırınız.

Python:

kelime = input("Bir kelime giriniz: ")
print("Kelimenin tersi:", kelime[::-1])

Soru 35: Listeden Ortadaki Elemanı Alma

5 elemanlı bir liste oluşturun ve listenin tam ortasındaki (indeksi 2 olan) elemanı ekrana yazdırıp listeden siliniz.

Python:

liste = ["Python", "Java", "C#", "Dart", "Swift"]
print("Ortadaki eleman:", liste.pop(2))
print("Listenin son hali:", liste)

Soru 36: Vücut Kitle Endeksi (VKE) Hesaplama

Kullanıcıdan kilo (kg) ve boy (metre) bilgilerini alarak VKE hesaplayınız.

$$VKE = \frac{kilo}{boy^2}$$
Python:

kilo = float(input("Kilonuz (kg): "))
boy = float(input("Boyunuz (m): "))
vke = kilo / (boy ** 2)
print("Vücut Kitle Endeksiniz:", vke)

Soru 37: Basit Bir Alışveriş Listesi

Boş bir sepet listesi oluşturun. Kullanıcıdan sırayla 3 ürün alıp bu listeye ekleyin ve sonunda listeyi alfabetik sıralayarak yazdırın.

Python:

sepet = []
sepet.append(input("1. Ürün: "))
sepet.append(input("2. Ürün: "))
sepet.append(input("3. Ürün: "))
sepet.sort()
print("Sıralı Sepetiniz:", sepet)

Soru 38: Saniye Dönüştürücü

Girilen saniye değerini dakika ve saniye cinsinden yazdırınız (Örn: 130 saniye -> 2 dakika 10 saniye).

Python:

toplam_saniye = int(input("Saniye giriniz: "))
dakika = toplam_saniye // 60
saniye = toplam_saniye % 60
print(f"{dakika} dakika {saniye} saniye")

Soru 39: String Metodları Uygulaması

" Pardus Etap 23 " metnindeki başındaki ve sonundaki boşlukları silen, ardından tüm harfleri büyük yapan kodu yazınız.

Python:

metin = " Pardus Etap 23 "
temiz_metin = metin.strip().upper()
print(temiz_metin)

Soru 40: Liste Elemanlarını Toplama

sayilar = [10, 20, 30, 40, 50] listesindeki sayıların toplamını sum() fonksiyonu kullanmadan ve kullanarak iki farklı şekilde gösteriniz.

Python:

sayilar = [10, 20, 30, 40, 50]
# 1. Yöntem
print("Toplam:", sum(sayilar))
# 2. Yöntem (Operatörle erişim)
toplam = sayilar[0] + sayilar[1] + sayilar[2] + sayilar[3] + sayilar[4]
print("Manuel Toplam:", toplam)

Soru 41: Sözlük (Dictionary) Güncelleme

Bir sözlükte kayıtlı olan "Dolar" kurunu 32.5'ten 34.2'ye güncelleyen kodu yazınız.

Python

kurlar = {"Dolar": 32.5, "Euro": 35.1}
kurlar["Dolar"] = 34.2
print(kurlar)

Soru 42: Listede Eleman Kontrolü

Kullanıcıdan bir meyve ismi isteyin. Bu meyve manav = ["elma", "armut", "muz"] listesinde varsa True, yoksa False yazdırın.

Python:

manav = ["elma", "armut", "muz"]
meyve = input("Meyve arayın: ").lower()
print(meyve in manav)

Soru 43: Sayı Kuvveti Tablosu

Kullanıcıdan bir sayı alın. Bu sayının 1, 2 ve 3. kuvvetlerini aralarında virgül olacak şekilde ekrana yazdırınız.

Python:

n = int(input("Sayı: "))
print(n**1, n**2, n**3, sep=", ")

Soru 44: İsim ve Soyisim Formatlama

Kullanıcıdan adını ve soyadını ayrı ayrı alın. Ekrana SOYAD, Ad formatında (Soyad tamamen büyük, Adın sadece ilk harfi büyük) yazdırın.

Python:

ad = input("Adınız: ").capitalize()
soyad = input("Soyadınız: ").upper()
print(f"{soyad}, {ad}")

Soru 45: Tekrar Eden Elemanları Temizleme

liste = [1, 2, 2, 3, 4, 4, 5] listesindeki tekrar eden sayıları silmek için hangi veri tipine dönüştürmek gerekir? Kodu yazınız.

Python:

liste = [1, 2, 2, 3, 4, 4, 5]
temiz_liste = list(set(liste))
print(temiz_liste)

Soru 46: Karakter Değiştirme

Bir cümledeki tüm boşluk karakterlerini tire (-) işareti ile değiştiren kodu yazınız.

Python:

cumle = "Python öğrenmek çok eğlenceli"
yeni_cumle = cumle.replace(" ", "-")
print(yeni_cumle)

Soru 47: Listenin En Büyük ve En Küçük Elemanı

Bir listedeki en büyük ve en küçük sayıyı bulan fonksiyonları yazınız.

Python:

sayilar = [45, 12, 89, 7, 34]
print("En Büyük:", max(sayilar))
print("En Küçük:", min(sayilar))

Soru 48: Doğum Yılından Yaş Hesaplama

Kullanıcıdan doğum yılını alıp şu anki yıla göre yaşını hesaplayan kodu yazınız.

Python:

dogum_yili = int(input("Doğum yılınız: "))
su_anki_yil = 2026 
print("Yaşınız:", su_anki_yil - dogum_yili)

Soru 49: Mail Adresi Oluşturucu

Kullanıcıdan adını ve soyadını alın. ad.soyad@okul.k12.tr şeklinde bir mail adresi oluşturup küçük harflerle yazdırın.

Python:

ad = input("Ad: ").lower()
soyad = input("Soyad: ").lower()
mail = ad + "." + soyad + "@okul.k12.tr"
print("E-posta adresiniz:", mail)

Soru 50: Listeyi Temizleme

İçinde birçok eleman bulunan bir listeyi tek bir komutla tamamen boşaltan kodu yazınız.

Python:

liste = [1, "a", 3.14, True]
liste.clear()
print(liste) # Çıktı: []

Bölüm 7: İleri Seviye Uygulama Soruları

Bu bölümde, yerli teknolojilerimiz ve önemli değerlerimiz üzerinden veri yapılarını pekiştireceğiz.

Soru 51: Liste Sıralama (Önemli Tarihler) tarihler = [1453, 1071, 571, 632] listesini oluşturun. Bu listeyi küçükten büyüğe sıralayarak ekrana yazdıran kodu yazınız.

Python
tarihler = [1453, 1071, 571, 632]
tarihler.sort()
print("Kronolojik Sıralama:", tarihler)

Soru 52: Sözlük Oluşturma (Sistem Bilgileri) "Pardus" ve "Etap" isimli iki anahtarı olan bir sözlük oluşturun. Değer olarak "Pardus"a "Nuri TIRAŞ", "Etap"a ise "Hasan Dağ" isimlerini atayın.

Python
sistem_yonetimi = {"Pardus": "Nuri TIRAŞ", "Etap": "Hasan Dağ"}
print(sistem_yonetimi)

Soru 53: Demet (Tuple) İçinde Arama bilgi = ("Pardus", 1071, "Etap", 1453) şeklinde bir demet oluşturun. Kullanıcıdan bir değer girmesini isteyin ve bu değerin demette olup olmadığını kontrol edin.

Python
bilgi = ("Pardus", 1071, "Etap", 1453)
ara = input("Aranacak değer: ") # Not: Sayı girilecekse int() dönüşümü gerekir
print(ara in bilgi)

Soru 54: Küme (Set) Farkı Hesaplama kume1 = {1071, 1453, 571} ve kume2 = {571, 632} kümelerini oluşturun. Birinci kümede olup ikinci kümede olmayan elemanları (farkı) bulun.

Python
kume1 = {1071, 1453, 571}
kume2 = {571, 632}
fark = kume1.difference(kume2)
print("Küme Farkı:", fark)

Soru 55: String Parçalama (Ad Soyad) isim = "Nuri TIRAŞ" değişkenindeki adı ve soyadı boşluktan ayırarak bir listeye aktaran kodu yazınız.

Python
isim = "Nuri TIRAŞ"
liste = isim.split()
print("Ad:", liste[0], "Soyad:", liste[1])

Soru 56: Matematiksel İşlemler ve Tarihler 1453 ve 1071 yıllarının farkını hesaplayıp, çıkan sonucu "Etap" kelimesinin yanına ekleyerek ekrana yazdırınız.

Python
fark = 1453 - 1071
print("Etap" + str(fark))

Soru 57: Sözlükten Veri Silme rehber = {"Hasan Dağ": 571, "Nuri TIRAŞ": 632} sözlüğünden "Hasan Dağ" anahtarını ve değerini silen kodu yazınız.

Python
rehber = {"Hasan Dağ": 571, "Nuri TIRAŞ": 632}
del rehber["Hasan Dağ"]
print(rehber)

Soru 58: Listeye Çoklu Eleman Ekleme Boş bir isletim_sistemleri listesi oluşturun. extend metodunu kullanarak listeye tek seferde ["Pardus", "Etap"] elemanlarını ekleyin.

Python
isletim_sistemleri = []
isletim_sistemleri.extend(["Pardus", "Etap"])
print(isletim_sistemleri)

Soru 59: Sayı Analizi (Mod Alma) sayilar = [1071, 1453, 571, 632] listesindeki her sayının 2'ye bölümünden kalanı ekrana yazdıran bir döngü mantığı kurun (Veya tek tek yazdırın).

Python
sayilar = [1071, 1453, 571, 632]
print(sayilar[0] % 2, sayilar[1] % 2, sayilar[2] % 2, sayilar[3] % 2)

Soru 60: Karışık Veri Yapısı İçinde bir liste (["Pardus", "Etap"]) ve bir tam sayı (1453) barındıran bir demet (tuple) tanımlayınız ve ekrana yazdırınız.

Python
karma_yapi = (["Pardus", "Etap"], 1453)
print(karma_yapi)

Soru 61: Küme Birleşimi yillar1 = {1071, 1453} ve yillar2 = {571, 632} kümelerini tek bir kümede birleştiren kodu yazınız.

Python
yillar1 = {1071, 1453}
yillar2 = {571, 632}
birlesim = yillar1.union(yillar2)
print(birlesim)

Soru 62: String İçinde Karakter Sayma "Pardus Etap Projesi - Hasan Dağ" metni içerisinde kaç tane "a" harfi geçtiğini bulan kodu yazınız.

Python
metin = "Pardus Etap Projesi - Hasan Dağ"
print("a harfi sayısı:", metin.count("a"))

Bölüm 8: Veri Yapıları Uzmanlık Soruları

Soru 63: Karma Liste Slicing (Dilimleme) bilgiler = ["Pardus", 1071, "Etap", 1453, "Nuri TIRAŞ", 571, "Hasan Dağ", 632] listesindeki sadece metin (string) olan ifadeleri dilimleme yöntemiyle değil, indeksleri tek tek kullanarak yeni bir listeye aktaran kodu yazınız.

Python
bilgiler = ["Pardus", 1071, "Etap", 1453, "Nuri TIRAŞ", 571, "Hasan Dağ", 632]
metinler = [bilgiler[0], bilgiler[2], bilgiler[4], bilgiler[6]]
print("Sistem İsimleri:", metinler)

Soru 64: Sözlük İçinde Liste Kullanımı "Proje" anahtarına sahip bir sözlük oluşturun. Değeri ise ["Pardus", "Etap"] listesi olsun. Bu sözlüğe dışarıdan "Yıl" anahtarıyla 1453 değerini ekleyiniz.

Python
proje_bilgi = {"Proje": ["Pardus", "Etap"]}
proje_bilgi["Yıl"] = 1453
print(proje_bilgi)

Soru 65: Kümelerle Benzersiz Tarihler tarihler = [1071, 1453, 1071, 571, 632, 1453] şeklinde tekrar eden elemanları olan bir liste tanımlayın. Bu listeyi kümeye dönüştürerek tekrar edenleri temizleyin ve eleman sayısını yazdırın.

Python
tarihler = [1071, 1453, 1071, 571, 632, 1453]
tekil_tarihler = set(tarihler)
print("Benzersiz Tarihler:", tekil_tarihler)
print("Eleman Sayısı:", len(tekil_tarihler))

Soru 66: Demet (Tuple) Birleştirme ve Dönüştürme t1 = ("Nuri TIRAŞ", "Hasan Dağ") ve t2 = (1071, 1453) demetlerini birleştirin. Elde edilen yeni demetin içindeki "Hasan Dağ" elemanına erişip ekrana yazdırın.

Python
t1 = ("Nuri TIRAŞ", "Hasan Dağ")
t2 = (1071, 1453)
t_son = t1 + t2
print("Erişilen Eleman:", t_son[1])

Soru 67: Sözlük Metodları (Items) ekip = {"Pardus": "Nuri TIRAŞ", "Etap": "Hasan Dağ"} sözlüğünün anahtar-değer çiftlerini (items) bir liste halinde ekrana yazdırınız.

Python
ekip = {"Pardus": "Nuri TIRAŞ", "Etap": "Hasan Dağ"}
print(list(ekip.items()))

Soru 68: Listede Eleman Değiştirme ve Kontrol sistem = ["Pardus", "Etap", 1453] listesindeki 1453 değerini silip yerine 1071 ekleyin. Ardından listede "Pardus" olup olmadığını if kullanmadan, sadece mantıksal operatörle sorgulayın.

Python
sistem = ["Pardus", "Etap", 1453]
sistem[2] = 1071 # Değiştirme
print("Pardus listede mi?:", "Pardus" in sistem)

Soru 69: İleri Seviye Küme İşlemleri (Kesişim) set_a = {1071, 1453, 571} ve set_b = {1453, 632, 1071} kümelerinin ortak elemanlarını (kesişim) bulunuz.

Python
set_a = {1071, 1453, 571}
set_b = {1453, 632, 1071}
ortak = set_a.intersection(set_b)
print("Ortak Yıllar:", ortak)

Soru 70: String İndeksleme (Harf Analizi) "Nuri TIRAŞ" metnindeki ilk ismi (Nuri) dilimleme ile alıp, sonuna " Hasan Dağ" metnini ekleyerek yeni bir değişken oluşturun.

Python
isim1 = "Nuri TIRAŞ"
yeni_isim = isim1[:4] + " Hasan Dağ"
print(yeni_isim)

Soru 71: Liste İçinde Sözlük Bir sınıftaki öğrencileri temsil eden bir liste oluşturun. Listenin her elemanı bir sözlük olsun. Örn: [{"Ad": "Nuri", "No": 1071}, {"Ad": "Hasan", "No": 1453}]. Listenin ikinci elemanının (Hasan) numarasını ekrana yazdırın.

Python
ogrenciler = [{"Ad": "Nuri", "No": 1071}, {"Ad": "Hasan", "No": 1453}]
print("Hasan'ın Numarası:", ogrenciler[1]["No"])

Soru 72: Sayısal Liste Fonksiyonları veriler = [1071, 1453, 571, 632] listesindeki en büyük sayı ile en küçük sayının farkını bulunuz.

Python
veriler = [1071, 1453, 571, 632]
fark = max(veriler) - min(veriler)
print("En Büyük - En Küçük Farkı:", fark)

Soru 73: Tuple (Demet) Unpacking bilgi = ("Pardus", "Etap") demetindeki değerleri sistem1 ve sistem2 isimli iki ayrı değişkene tek satırda atayınız.

Python
bilgi = ("Pardus", "Etap")
sistem1, sistem2 = bilgi
print(sistem1, "ve", sistem2)

Soru 74: Kümeye Eleman Ekleme ve Güncelleme projeler = {"Pardus"} kümesine önce add ile "Etap"ı ekleyin, sonra update ile {"1071", "1453"} kümesini ekleyiniz.

Python
projeler = {"Pardus"}
projeler.add("Etap")
projeler.update({"1071", "1453"})
print(projeler)

Soru 75: Dinamik Sözlük Erişimi yonetim = {"Nuri": "Pardus", "Hasan": "Etap"} sözlüğünde kullanıcıdan bir isim (anahtar) alıp, o ismin hangi projede olduğunu yazdıran kodu yazınız.

Python
yonetim = {"Nuri": "Pardus", "Hasan": "Etap"}
isim = input("İsim giriniz (Nuri/Hasan): ")
print(yonetim.get(isim, "Kayıt bulunamadı."))

Kapanış

Bu çalışma soruları Python yolculuğunuzun temel taşlarını oluşturur. Soruları önce kendiniz çözmeye çalışın, ardından cevap anahtarı ile kontrol edin. Hepinize başarılar!

Yorumlar

Bu blogdaki popüler yayınlar

Pardus İçin Python ile "Web Sitesi Engelleyici" (Website Blocker)

Pardus Üzerine PyCharm Kurulumu ve Ayarları