Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมตรวจสอบรหัสผ่านว่าตรงตามเกณฑ์หรือไม่ใน Python

สมมติว่ามีสตริง s แทนรหัสผ่าน เราต้องตรวจสอบเกณฑ์รหัสผ่าน มีกฎดังนี้

  • ความยาวรหัสผ่านอย่างน้อย 8 ตัวอักษร และสูงสุด 20 ตัวอักษร
  • มีตัวเลขอย่างน้อยหนึ่งตัว
  • มีตัวอักษรพิมพ์เล็กและพิมพ์ใหญ่อย่างน้อยหนึ่งตัวแต่ละอย่าง
  • มีอักขระพิเศษอย่างน้อยหนึ่งตัว เช่น !"#$%&'*+,-./:;<=>?@[\\]^_`{|}~
  • ไม่มีอักขระอื่น เช่น แท็บหรือบรรทัดใหม่

เช่น ถ้าอินพุตคือ "@bCd12#4" ผลลัพธ์จะเป็น True

ขั้นตอนการแก้ปัญหา

  • a:=0, b:=0, c:=0, d:=0
  • ถ้าความยาวรหัสผ่าน < 8 หรือ > 20 คืนค่า False
  • สำหรับแต่ละตัวอักษร i ในรหัสผ่าน
    • ถ้า i เป็นตัวพิมพ์ใหญ่ a := a + 1
    • มิฉะนั้นถ้า i เป็นตัวพิมพ์เล็ก b := b + 1
    • มิฉะนั้นถ้า i อยู่ในชุดอักขระพิเศษ c := c + 1
    • มิฉะนั้นถ้า i เป็นตัวเลข d := d + 1
  • ถ้า a>=1 และ b>=1 และ c>=1 และ d>=1 และ a+b+c+d เท่ากับความยาวรหัสผ่าน คืนค่า True มิฉะนั้น False

ตัวอย่างโค้ด

class Solution:
    def solve(self, password):
        a = b = c = d = 0
        if len(password) < 8 or len(password) > 20:
            return False
        for i in password:
            if i.isupper():
                a += 1
            elif i.islower():
                b += 1
            elif i in '"!#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~':
                c += 1
            elif i.isdigit():
                d += 1
        if a >= 1 and b >= 1 and c >= 1 and d >= 1 and a+b+c+d == len(password):
            return True
        else:
            return False

s = "@bCd12#4"
ob = Solution()
print(ob.solve(s))

อินพุต

"@bCd12#4"

เอาต์พุต

True