Python Fonksiyonlar Değerlendirme Sınavı



Python Fonksiyonlar Değerlendirme Sınavı

Toplam Puan: 100

Süre: 60 Dakika


Bölüm 1: Kavramsal Sorular (Toplam 20 Puan)

Soru 1 (5 Puan): Python'da bir fonksiyon tanımlamak için kullanılan anahtar kelime nedir ve bir fonksiyonun en temel sözdizimi (syntax) nasıl olmalıdır? (Anahtar kelimeyi ve genel yapıyı bir satırda gösteriniz).


Soru 2 (5 Puan): Bir fonksiyonun gövdesindeki kodları, programın geri kalanından ayıran en önemli sözdizimi kuralı nedir? Bu kural neden önemlidir?


Soru 3 (5 Puan): Fonksiyon tanımındaki parametre ile fonksiyonu çağırırken kullanılan argüman arasındaki farkı kısaca açıklayınız.


Soru 4 (5 Puan): Tanımlanmış bir fonksiyon, program içinde hiç çağrılmazsa ne olur? Fonksiyonun içindeki kodların çalışması için ne yapmak gerekir?


Bölüm 2: Kod Analizi ve Çıktı Tahmini (Toplam 32 Puan)

Soru 5 (8 Puan): Aşağıdaki kod bloğunun çıktısı ne olur? Çıktıyı sırasıyla yazınız.

Python
def personel_bilgisi(ad, departman="IT", yil=1):
    print(f"Ad: {ad}, Departman: {departman}, Tecrübe: {yil} yıl")

personel_bilgisi("Elif")
personel_bilgisi("Kaan", yil=5)
personel_bilgisi(departman="İK", ad="Merve")

Soru 6 (8 Puan): Aşağıdaki kod neden SyntaxError hatası verir? Hatayı açıklayınız ve kodun doğru halini yazınız.

Python
def urun_ekle(ad, fiyat, stok_adedi):
    print(f"Ürün: {ad}, Fiyat: {fiyat} TL, Stok: {stok_adedi}")

urun_ekle(fiyat=150, "Klavye", stok_adedi=50)

Soru 7 (8 Puan): Aşağıdaki kodun çıktısı ne olur?

Python
def sayilari_carp(*sayilar):
    if not sayilar:
        return 1
    sonuc = 1
    for sayi in sayilar:
        sonuc *= sayi
    return sonuc

print(sayilari_carp(2, 3, 5))
print(sayilari_carp(10, 20))

Soru 8 (8 Puan): Aşağıdaki kodun çıktısı ne olur?

Python
def arac_ozellikleri(**ozellikler):
    print("--- Araç Bilgileri ---")
    for anahtar, deger in ozellikler.items():
        print(f"{anahtar.capitalize()}: {deger}")

arac_ozellikleri(marka="Tesla", model="Model Y", yil=2024, renk="Beyaz")

Bölüm 3: Pratik Kodlama Problemleri (Toplam 48 Puan)

Soru 9 (10 Puan): Bir dikdörtgenin alanını (uzun_kenar * kisa_kenar) ve çevresini (2 * (uzun_kenar + kisa_kenar)) hesaplayan iki ayrı fonksiyon yazınız.

  • dikdortgen_alani(uzun_kenar, kisa_kenar) fonksiyonu, hesapladığı alanı return ile döndürmelidir.

  • dikdortgen_cevresi(uzun_kenar, kisa_kenar) fonksiyonu, hesapladığı çevreyi return ile döndürmelidir.


Soru 10 (12 Puan): Bir ürünün KDV'li fiyatını hesaplayan bir fonksiyon yazınız.

  • Fonksiyonun adı kdvli_fiyat_hesapla olsun.

  • Fonksiyon, urun_fiyati adında zorunlu bir parametre alsın.

  • Ayrıca kdv_orani adında bir parametre daha alsın ve bu parametrenin varsayılan (default) değeri 18 olsun.

  • Fonksiyon, ürün fiyatına KDV'yi ekleyerek son fiyatı return ile döndürmelidir. (Formül: son_fiyat = fiyat * (1 + kdv / 100))

  • Örnek Çağrı: kdvli_fiyat_hesapla(1000) çağrıldığında 1180.0 dönmelidir. kdvli_fiyat_hesapla(1000, 8) çağrıldığında 1080.0 dönmelidir.


Soru 11 (12 Puan): Aldığı metinlerin (string) hepsini birleştirip tek bir metin olarak döndüren bir fonksiyon yazınız.

  • Fonksiyonun adı metinleri_birlestir olsun.

  • Fonksiyon, *args kullanarak belirsiz sayıda metin argümanı alabilmelidir.

  • Argümanlar arasına bir boşluk (" ") koyarak hepsini birleştirmeli ve sonucu return ile döndürmelidir.

  • Örnek Çağrı: metinleri_birlestir("Python", "öğrenmek", "çok", "keyifli") çağrıldığında "Python öğrenmek çok keyifli" stringini dönmelidir.


Soru 12 (14 Puan): Bir kullanıcı profili oluşturan ve bilgileri ekrana yazdıran bir fonksiyon yazınız.

  • Fonksiyonun adı profil_olustur olsun.

  • Fonksiyon, ilk argüman olarak kullanici_adi'nı zorunlu olarak alsın.

  • Daha sonra **kwargs kullanarak kullanıcının diğer bilgilerini (örneğin yas=30, sehir="Ankara", meslek="Mühendis") alabilsin.

  • Fonksiyon, aşağıdaki gibi bir çıktı üretmelidir (döndürme işlemi yoktur, sadece print kullanılacak):

    Kullanıcı Profili: <kullanici_adi>
    --------------------
    Yas: 30
    Sehir: Ankara
    Meslek: Mühendis
    
  • Not: **kwargs ile alınan her bilgi Anahtar: Değer formatında yazdırılmalıdır.

Comments

Popular posts from this blog

Üçüncü Bölüm: Python'da Kontrol ve Döngü Yapıları (Kontrol ve Döngü İfadeleri)

İşte yukarıdaki 6 bölüm için her bölümden üçer adet Türkçe sınav sorusu hazırlanmıştır:

FOR Döngüsü – Python'da Tekrar Yapıları