Bu Kod Parçası Ne İşe Yarıyor

Merhabalar, bir soru vardı ben farklı şekilde çözdüm fakat başkasının çözümünü gördüm inceledim ama “d[isim.title()]” kısmını anlamadım bu hangi yapı/konu ? Google da neyi arayacağımı bile anlamadım açıkçası

def kontrol(isim):
    d = {"Hakan": "1.sira", "Tuğçe": "2.sira", "Mert": "3.sira", "Fatma": "4.sira"}
    if isim.title() in d:
        return d[isim.title()]
    else:
        return "Boş"

print(kontrol("Hakan"))

Kodlara baktığımız zaman, d isimli bir tane sözlük tanımlanmış olduğunu görüyoruz. Bir sözlükte yer alan bir anahtarın değerine ulaşmak için, sözlük["anahtar1"] şeklinde bir ifade yazarız ve böylece anahtar1 isimli anahtarın değerine ulaşırız.

title ise str veri tipinin bir metodu. Bir string içinde boşlukla ayrılmış her bir karakter dizisinin ilk harfini büyük harfe çevirir. Yani "a b c" gibi bir stringimiz varsa, print("a b c".title()) ifadesi "A B C" stringini ekrana yazdıracaktır. Stringimiz "ankara istanbul" ise, print("ankara istanbul".title()) ifadesi, "Ankara Istanbul" stringini ekrana yazdıracaktır.

d isimli sözlüğün anahtarlarına baktığımız zaman, anahtarların ilk harflerinin büyük olduğunu görüyoruz. Dolayısıyla bu kodu yazan kişi şunu amaçlamış olmalı: isim değişkeni nasıl yazılırsa yazılsın, title fonksiyonu ile parametrenin ilk harfi büyütülecek, geri kalan harfleri de küçültülecek. Ve bu isim.title() parametresi, d sözlüğünün içindeyse, d[isim.title()] (örneğin d["haKaN".title()]) döndürülecek. d["hAKan".title()], d["Hakan"] olduğu için, bu anahtarın da değeri "1.sira" olduğu için, dönen değer "1.sira" olur.

title metodu yerine burada capitalize metodu da kullanılabilirdi.

3 Beğeni

Çok teşekkür ederim hocam bu temel bilgiyi bilmediğim için anlamamışım, mesajınızın devamında da tek tek okuyup konuyu net olarak anladım.