密码检查器的while循环中的if语句

2024-05-19 22:47:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在建立一个程序,将检查用户的密码是否低于6个字符或超过10个字符,并继续检查它是否强大。如果不超过6个字符或少于6个字符,它将继续要求用户输入少于10个字符和多于6个字符的密码。尝试使用while循环,但无效。提前谢谢

if password.isalpha():  # If python detects the input is all letters, it will-
    message = "password weak – contains only letters"  # Choose this message and present it on prompt from line 35
elif password.isnumeric():  # If python detects the input is not all alphabetical letters, it proceeds to this method-
    message = "password weak – contains only numbers"  # and chooses this message and presents it on prompt from line 35
else:
    message = "password strong"  # If the password input is a mixture of letters & numbers, it will print this message-

print(message) # and will be prompted to show for this line of code.

Tags: andthe密码messageinputifisline
3条回答
MIN_PASSWORD_LENGTH = 6
MAX_PASSWORD_LENGTH = 10

while True:
  password = input("Please enter your password: ")
  if len(password) < MIN_PASSWORD_LENGTH or len(password) > MAX_PASSWORD_LENGTH:
    print("Password should have more than 6 but less 10 characters")
    continue
  elif password.isalpha():  
     print ("password weak – contains only letters")
     continue
   elif password.isnumeric(): 
     print ("password weak – contains only numbers")
     continue
   else:
      print("password strong")
      break
    
MIN_PASSWORD_LENGTH = 6
MAX_PASSWORD_LENGTH = 10
def password_func(ls):
    password = input("Please enter your password: ")
    if len(password) < MIN_PASSWORD_LENGTH or len(password) > MAX_PASSWORD_LENGTH:
        message = "Password should have more than 6 but less 10 characters"
        print(message)
        ls.append(message)
        return password_func(ls)
    elif password.isalpha():
        message = "password weak – contains only letters"
        print(message)
        ls.append(message)
        return password_func(ls)
    elif password.isnumeric():
        message = "password weak – contains only numbers"
        print(message)
        ls.append(message)
        return password_func(ls)
    else:
        return ls.append("strong")
ls = []
password_func(ls)
print("")
print("error messages")
print(*ls,sep='\n')

或者简单地在循环中

MIN_PASSWORD_LENGTH = 6
MAX_PASSWORD_LENGTH = 10
messale_ls = []
message = ''
while True:
    password = input("Please enter your password: ")
    if len(password) < MIN_PASSWORD_LENGTH or len(password) > MAX_PASSWORD_LENGTH:
        message = "Password should have more than 6 but less 10 characters"
    elif password.isalpha():  
        message = "password weak – contains only letters"
    elif password.isnumeric():
        message = "password weak – contains only numbers"
    else:
        message = "password strong"
    messale_ls.append(message)
    print(message)
    if message == "password strong":
         break

两者都给我的输出如下

Please enter your password: tester
password weak – contains only letters
Please enter your password: test
Password should have more than 6 but less 10 characters
Please enter your password: tester1
password strong

Note : Recursive function is only for learning purpose

试试这个逻辑。 Flag=1表示密码为强密码

MIN_PASSWORD_LENGTH = 6
MAX_PASSWORD_LENGTH = 10
password = input("Please enter your password: ")  # User will input their password here, proceeding to the if structure
flag=0
while flag==0:
  if len(password) < MIN_PASSWORD_LENGTH:
    password = input("Please enter your password again:(Min Length=6) ")
    continue
  if len(password) > MAX_PASSWORD_LENGTH:
    password = input("Please enter your password again:(Max Length=10) ")
    continue
  else:
    flag=1

相关问题 更多 >