Reputation: 67
I am building a program that will check a user's password whether it's lower than 6 characters or more than 10 characters and continue to check whether it's strong. If not more than 6 characters or less than characters, it will keep on asking the user to enter a password that is less than 10 characters and more than 6. Tried using a while loop but didn't work. Thanks in advance.
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.
Upvotes: 0
Views: 1725
Reputation: 1139
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')
Or simply while Loop
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
Both give me the output is follows
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
Upvotes: 1
Reputation: 389
Try this:
while len(str(password)) < MIN_PASSWORD_LENGTH and len(str(password)) > MAX_PASSWORD_LENGTH:
if password.isalpha():
message = "password weak – contains only letters"
elif password.isnumeric():
message = "password weak – contains only numbers"
else:
message = "password strong"
break
print(message)
Upvotes: 0
Reputation: 1481
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
Upvotes: 0
Reputation: 216
Try this logic. Flag = 1 means password is strong.
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
Upvotes: 1