Kullanıcıdan bir parolayı temsil eden bir dize giren ve geçerliliğini kontrol eden bir program yazın. Geçerli bir parola şunları içermelidir:

En az 1 küçük harf ('a' ve 'z' arasında) ve 1 büyük harf ('A' ve 'Z' arasında). En az 1 basamak ('O' ile '9' arasında ve O ile 9 arasında değil). En az 1 özel karakter (ipucu: harf veya rakam olmayan tüm karakterleri saymak için başka bir tuş kullanın). Minimum uzunluk 6 karakter. Boşluk yok (ipucu: bir boşlukla karşılaştığınızda döngüden çıkabilirsiniz)

Program, parolanin geçerli olduğunu veya geçerli değilse neden olmadığını belirten bir mesaj çıkarmalıdır. Örneğin, parolanin uzunluğu 5 ise, çıktı "Parola çok kısa; minimum 6 karakter gerekli" vb. demelidir. *

Python ile yazılacak!!! ​


Cevap :

import re

def kontrol():

         password= input("şifrenizi giriniz: ")

         x = True

         while x:

             if (len(password)<6):

                 print("şifre en az 6 karakterli olmalı")    

                 break

             elif not re.search("[a-z]",password):

                 print("en az 1 küçük har gerekli")

                 break

             elif not re.search("[0-9]",password):

                 print("en az 1 sayı gerekli")

                 break

             elif not re.search("[A-Z]",password):

                 print("en az 1 büyük harf gerekli")

                 break

             elif not re.search("[@_!#$%^&*()<>?/\|}{~:]",password):

                 print("en az 1 özel karakter olmalı")

                 break

             elif re.search("\s",password):

                 print("şifrede boşluk bulunmamalı ")

                 break

             else:

                 print("şifre doğru")

                 x=False

                 break

         if x:

             print("şifre doğru değil")

             kontrol()

         return x

kontrol( )

Not: Bu soruyu re'yi import etmeden de yapabiliris for loop kullanarak fakat bu karakterleri aramayı biraz daha zorlaştırdığından bu yöntemi tercih etmenizi öneririm.

Ben bir function oluşturarak yaptım soruyu. Bu sisteni function'ın dışına da taşıyabilirsiniz.

Ben soruyu hızlıca yaptığımdan dolayı cümleleri kısa yazdım bu cümleler düzeltilebilir.

Özel karakterleri bulmak için ayrıca bir for loop'u kullanabilirsiniz .isnumeric ve .isdigit ile ya da regexp = re.compile('[^0-9a-zA-Z]+') şeklinde yeni bir var oluşturabilirsiniz ve bunun ardindan regexp.search(password) şeklinde bir kontrol yapabilirsiniz

"Python ile ilgili örnek" için,

https://eodev.com/gorev/14093716

Başarılar