Çözüldü Büyük küçük harf duyarlılığını kaldırma

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

nacaar

Hectopat
Katılım
27 Şubat 2019
Mesajlar
628
Çözümler
7
Yer
İstanbul
Daha fazla  
Cinsiyet
Erkek
Meslek
öğrenci
Örneğin sisteme giriş yapmak isteyen birisi Mert Gül yazınca hata alıyorsa mert gül yazınca da hata almasını istiyorum. Nasıl yapabilirim?
Şimdiden teşekkürler.

[CODE lang="python" title="Büyük Küçük Harf Duyarlılığı"]ogrenciAdiSoyadi = str(input("Öğrencinin adı soyadı:\n"))
ogrencilistesi = ("Mert Gül","Ali Vefa")

while (ogrenciAdiSoyadi in ogrencilistesi):
ogrenciAdiSoyadi = str(input("Bu öğrenci sistemimizde kayıtlı! Başka Öğrenci giriniz:\n"))
[/CODE]
 
Çözüm
Anladığım kadarıyla "Mert Gül" ile "mert gül" veya "Mert gül"ü eşit tutmak istiyorsunuz. .title() metodunu kullanabilirsiniz. Bu tamamen "ogrenciler" isimli listeye nasıl kaydettiğiniz ile alakalı. Eğer "ali vefa", "mert gül" olarak kaydetseydiniz .lower() ; "ALİ VEFA", "MERT GÜL" olarak kaydettiyseniz .upper() metodlarını kullanabilirsiniz.

[CODE lang="python" title="Örnek" highlight="4"]ogrenciler = ["Ali Vefa","Mert Gül"]
while True:
arama = input("Öğrenci ad-soyad giriniz: ")
if arama.title() in ogrenciler:
print("\nÖğrenci sisteme kayıtlı.")
else:
print("\nÖğrenci sisteme kayıtlı değil.")[/CODE]
Anladığım kadarıyla "Mert Gül" ile "mert gül" veya "Mert gül"ü eşit tutmak istiyorsunuz. .title() metodunu kullanabilirsiniz. Bu tamamen "ogrenciler" isimli listeye nasıl kaydettiğiniz ile alakalı. Eğer "ali vefa", "mert gül" olarak kaydetseydiniz .lower() ; "ALİ VEFA", "MERT GÜL" olarak kaydettiyseniz .upper() metodlarını kullanabilirsiniz.

[CODE lang="python" title="Örnek" highlight="4"]ogrenciler = ["Ali Vefa","Mert Gül"]
while True:
arama = input("Öğrenci ad-soyad giriniz: ")
if arama.title() in ogrenciler:
print("\nÖğrenci sisteme kayıtlı.")
else:
print("\nÖğrenci sisteme kayıtlı değil.")[/CODE]
 
Çözüm
Anladığım kadarıyla "Mert Gül" ile "mert gül" veya "Mert gül"ü eşit tutmak istiyorsunuz. .title() metodunu kullanabilirsiniz.

[CODE lang="python" title="Örnek" highlight="4"]ogrenciler = ["Ali Vefa","Mert Gül"]
while True:
arama = input("Öğrenci ad-soyad giriniz: ")
if arama.title() in ogrenciler:
print("\nÖğrenci sisteme kayıtlı.")
else:
print("\nÖğrenci sisteme kayıtlı değil.")[/CODE]
Teşekkürler. Peki, başka bir konuda görmüştüm, .lower ile de aynı işlemi yapmıştı bir arkadaş. .lower ile de yapılabilir mi?
 
Son düzenleyen: Moderatör:
Teşekkürler. Peki, başka bir konuda görmüştüm, .lower ile de aynı işlemi yapmıştı bir arkadaş. .lower ile de yapılabilir mi?
Elbette, sonradan eklediğim gibi. İsimleri de küçük harf olarak kaydederseniz bu mümkün.

[CODE lang="python" title="Örnek" highlight="1, 4"]ogrenciler = ["ali vefa","mert gül"]
while True:
arama = input("Öğrenci ad-soyad giriniz: ")
if arama.lower() in ogrenciler:
print("\nÖğrenci sisteme kayıtlı.")
else:
print("\nÖğrenci sisteme kayıtlı değil.")[/CODE]

Edit: Bunun aslında "ogrenciler" listesinde kullandığımız büyük/küçük harf düzeni fark etmeksizin çalışan biraz daha karmaşık bir alternatifini yazmak mümkün.

[CODE lang="python" title="Alternatif (Önerilir)" highlight="2-6"]ogrenciler = ["Alİ vEfA","mErT GüL"] # Kaydedilen isimdeki büyük/küçük harf kullanımı fark etmez.
for ogrenci in ogrenciler:
ogrenciler[ogrenciler.index(ogrenci)] = ogrenci.lower() # Aynı şekilde .upper() metodu da kullanılabilir.
""" 'ogrenciler' listesinden for döngüsünü kullanarak sırayla öğrencileri çekiyoruz. sonrasında
çektiğimiz öğrencinin tüm harflerini küçültüyoruz/büyütüyoruz ve aynı index'e tekrar kaydediyoruz. bir
nevi 'düzenleme' diyebiliriz. """
while True:
arama = input("Öğrenci ad-soyad giriniz: ")
if arama.lower() in ogrenciler: # .upper() metodu kullanılması durumunda değişim gerektirir.
print("\nÖğrenci sisteme kayıtlı.")
else:
print("\nÖğrenci sisteme kayıtlı değil.")[/CODE]
 
Elbette, sonradan eklediğim gibi. İsimleri de küçük harf olarak kaydederseniz bu mümkün.

[CODE lang="python" title="Örnek" highlight="1, 4"]ogrenciler = ["ali vefa","mert gül"]
while True:
arama = input("Öğrenci ad-soyad giriniz: ")
if arama.lower() in ogrenciler:
print("\nÖğrenci sisteme kayıtlı.")
else:
print("\nÖğrenci sisteme kayıtlı değil.")[/CODE]
Çok teşekkürler
 

Geri
Yukarı