Python büyük/küçük harf duyarlılığı

Merhaba bir txt dosyasındaki metinde “Python” kelimesini aratıp kaç adet olduğunu yazan programın kodlarını yazdım.Fakat dosyanın içindeki metinde 24 Python kelimesinin baş harfi büyük 1 tanesinin küçük ben “Python” ya da “python” yazdığımda sonucu 25 almak istiyorum nasıl yaparım yardımcı olabilecek var mı ?

pythonda lower ve upper methodları var (string in harflerini büyültüp küçültmeye yarar) misal öncelikle tüm dosyayı okurken lower ile okursun ve kullanıcıdan aldığın değeri de lower a çevirirsin sonrasında kontrolünü yaparsın böylece geçebilecek tüm karakterler küçük harfle kontrol edilir aynısını upper ile büyük harf yapabilirsin.

file = open("a.txt", "r")
print(file.read().lower())

örneğin dosyadaki tüm karakterleri küçükmüş gibi okuyabilirsin bu komutla aynısını kullanıcıdan aldığın input a da yapmalısın sonrasında kontrolünü gerçekleştirmelisin

bu dökümantasyonu okuyabilirsin hem upper lower ı anlatıyor hemde isupper islower replace split gibi benzer metodları anlatıyor

1 Beğeni

lower methodunu kullanıyorum zaten fakat baş harfini küçük başlatınca arattığım kelimeyi bulmuyor.Benim yapmak istediğim baş harfi büyükte olsa küçükte olsa direkt olarak kelimeye bakıp saysını bulmak.

Demek istediğim şey şuydu hem dosyayı küçültüyorsunuz hemde aranan terimi küçültüyorsunuz örneğin bir dosyamız olsun

abc.txt

PYThon, javascript, JAVA, koTlİn, python

ve siz kodun başında dosyayı okurken lower metoduyla okuyunca dosya python, javascript, java, kotlin, python a dönüşecek ve siz kullanıcıdan gelen input u da lower yapmalısınız örneğin kullanıcıdan gelen Python olsun siz buna lower dediğinizde python olacak ve dosyadaki diğer tüm python larda küçük olduğundan artık karşılaştırma metodu olarak ne kullanıyorsanız yaptığınızda size 2 tane olduğunu söyliyecek.

1 Beğeni

https://docs.python.org/3/library/stdtypes.html#str.casefold

ek olarak case sensitive olmayan karşılaştırma işlemlerinde lower() yerine casefold() tavsiye ediliyor. Türkçe’yi pek ilgilendirmese de yazayım dedim.