Şifre belirlerken küçük harf büyük harf duyarlılığı nasıl sağlanır

@hackaxx Merhaba olabilir tabi ki ama ben genelde kullandığım uygulamalarda karşıma çıkan durumlara göre çözümler nasıl yapılıyormuş diye merak ettiğim için basitlikten ziyade çetrefilli konular oluyor mesela bir çok uygulamanın ve sitenin parola belirleme algoritmasında mükerrer yada sıralı rakamların kullanılması durumunda parola kabul edilmiyor. Şu an onu araştırıyorum nasıl yapılmıştır diye muhtemelen işin içinden çıkamıycam ve konu açacağım :grinning:

Dogru kutuphane metodlarini kullanmakta bir sorun yok. Bir karakterin kucuk harf olup olmadigi sorgulanmak istenmis ve islower da tam olarak bunu yapiyor.

kusura bakmayın ben islower filan bilmiyorum aslında pythonın 100de 1ini bile bilmiyorum.bu nedenle sadece bildiklerimi kullanarak çözüm bulmak konusunda ustalaştım. programlamada cehalet evdeki yangın olsa ben içerde yanardım maalesef :worried: :sob: :disappointed_relieved: :sweat: :weary: :tired_face:

Tam olarak anlaşılır söyler misin?

if password.lower() != password != password.upper():
    print("hem küçük hem büyük harf var")
3 Beğeni

Şifre belirlerken numeric karakterler kullanılmayacaksa ve hata mesajlarında hatanın nedeni yazılmayacaksa en kısa yöntem bu oldu.Elinize sağlık

Nümeriklerde de çalışmaz mı?

@Then_Shiffman Yani numeric sorgulamıyorsanız çalışıyor tabi ki. Ama password numeric içeriyor mu diye aynı satırda kodun devamında denemeler yaptım ama doğru sonuç vermedi yada hata verdi.

Anladım, "9213dAsd"nin büyük ve küçük harf içerdiği tespit edilebiliyor ama direkt "9213dAsd".isnumeric() yazdığımızda False diyor; burada any kullanabiliriz aslında?

kucuk_ve_buyuk_harf_iceriyor = password.lower() != password != password.upper() 
numerik_karakter_iceriyor = any(char.isnumeric() for char in password)

if kucuk_ve_buyuk_harf_iceriyor and numerik_karakter_iceriyor:
    print("sayı da var küçük harf de var büyük harf de var")
1 Beğeni

Any kullanımı gömülü fonksiyonlar başlığı altında anlatılmış henüz bu başlığı okumamıştım bilgi için teşekkürler. Bu kod bu şekliyle hata mesajında ayrıntı verilmeyecekse kullanılabilir. Elinize sağlık .

map ve all da kullanılabilir:

solution = lambda i: all(any(map(f, i)) for f in (str.isnumeric, str.isupper, str.islower))
4 Beğeni

@EkremDincel Bu kod ve devaminda yazilacak kod ile koşulu sağlamayan durumun hatası kullanıcıya gösterilebilir mi. Passwordde en az 1 kucuk harf kullanmalisiniz vb.

Hayır, bu kod sadece şifrenin uygun olup olmadığını hesaplıyor.