kişi = input("Aradığınız kişisin ad ve soyadı:")
kişi = kişi.lower()
if kişi == "Astala Vista":
print("email: andioral@mns.com")
print("telefon: 123456789")
print("adres: makara kikiri sokak, bilmem ne caddesi, no 1")
elif kişi == "Yabadaba Duuu":
print("email: felanfilan@dsfd.com")
print("telefon: 56526256586")
print("adres: sadfesddsfsdfdgdgd")
else:
print("Aradığınız kişi veritabanında yok.")
çıktısı:
Aradığınız kişisin ad ve soyadı:Astala Vista
Aradığınız kişi veritabanında yok.
burada nerede yanlış yapiyorum bir türlü bulamadım. bilgiler dökülmesi lazımken, Aynı şekilde yazsam bile, yine aynı çıktıyı veriyor.
Lower yaptiktan sonra buyuk/kucuk uyumu ortadan kalkmiyor mu? Yani buyukte yazsam, kucukte yazsam, dogru yazildigi takdirde, Kabul etmesi gerekmiyormu? Siteden kopyaliyorum oluyor,Kendim egzersiz yaparak yazayim diyorum, sorun cikiyor
Bu ifadenin kullanilmasi bir yanlis modellemeye isaret ediyor olabilir. Kabul mekanizmalarindan ziyade degerler ve ifadeler ile konusmak lazim: “Buyuk de yazsam, kucuk de yazsan, "HEDE".lower() == "Hede" ifadesinin degeri True olmuyor mu?”
Sartta kullanilacak ifadeler ile ilgili dilde herhangi bir kisitlama yok. Bu konuyla ilgili herhangi bir gelenek veya aliskanlik da yok.
Iki str’yi harf buyuklugunden bagimsiz karsilastirmak isteyenlerin bir fonksiyon yazmalarini tavsiye ederim. Baslangic olarak hede.lower() == hodo.lower(), sonra .casefold() kullanilabilir.
Siteden kopyaliyorum olmuyoru yanlış yazmisim. Duzelttim. Oluyor olacakti, yani kod calisiyor. https://python-istihza.yazbel.com/ calisiyorum. Lower metodu konusunu anlatirken verilen ornegi kopyaliyorum, kullanicidan veri aliyorum, bilgileri cikti olarak veriyor. Lakin ben ayni sekilde farkli degerler atiyorum, else devreye giriyor. If elif kosullari devreye girmiyor. Yukaridaki verdigim kodlamada
Örneğe baktım orada “ahmet öz” yazıyor tamamı küçük harflerden oluştuğu için kişi.lower() ile girilen değeri karşılaştırıyor ve doğru oluyor. Siz ise “Astala Vista” yazarak ilk harfleri büyük bir veri ile tamamı küçük harflerden oluşan değeri karşılaştırıyorsunuz.
Ama burada bazı problemler var. Birincisi, kullanıcının kaç türlü veri girebileceğini kestiremeyebilirsiniz. İkincisi, kestirebilseniz bile, her kişi için olasılıkları girmeye çalışmak eziyetten başka bir şey değildir…
İşte burada imdadımıza lower() metodu yetişecek. Dikkatlice inceleyin:
kişi = input("Aradığınız kişinin adı ve soyadı: ")
kişi = kişi.lower()
if kişi == "ahmet öz":
print("email: aoz@hmail.com")
print("tel : 02121231212")
print("şehir: istanbul")
elif kişi == "mehmet söz":
print("email: msoz@zmail.com")
print("tel : 03121231212")
print("şehir: ankara")
elif kişi == "mahmut göz":
print("email: mgoz@jmail.com")
print("tel : 02161231212")
print("şehir: istanbul")
else:
print("Aradığınız kişi veritabanında yok!")
Artık kullanıcı ‘ahmet öz’ de yazsa, ‘Ahmet Öz’ de yazsa, hatta ‘AhMeT öZ’ de yazsa programımız doğru çalışacaktır. Peki bu nasıl oluyor? Elbette lower() metodu sayesinde…