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 = 10yanlıştır,sayi1 = 10doğ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, sonra8*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")veyadel 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.
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.
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.
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)
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.
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.
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.
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.
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.
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).
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.
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.
# 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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Pythontarihler = [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.
Pythonsistem_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.
Pythonbilgi = ("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.
Pythonkume1 = {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.
Pythonisim = "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.
Pythonfark = 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.
Pythonrehber = {"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.
Pythonisletim_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).
Pythonsayilar = [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.
Pythonkarma_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.
Pythonyillar1 = {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.
Pythonmetin = "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.
Pythonbilgiler = ["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.
Pythonproje_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.
Pythontarihler = [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.
Pythont1 = ("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.
Pythonekip = {"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.
Pythonsistem = ["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.
Pythonset_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.
Pythonisim1 = "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.
Pythonogrenciler = [{"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.
Pythonveriler = [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.
Pythonbilgi = ("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.
Pythonprojeler = {"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.
Pythonyonetim = {"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
Yorum Gönder