编写程序,检查密码字符串是否符合规范:要求至少包含6个字符,且需有英文大小写字母和数字。
思路:若长度小于6,则密码不合法;
否则判断是否包含大写字母,若不包含则不合法;
否则判断是否包含小写字母,若不包含则不合法;
否则判断是否包含数字,若不包含则不合适;
以上条件都满足,则密码合法
要求利用:isalnum()、isalpha()、isdigit()、isdecimal()、isnumeric()、isspace()、isupper()、islower()
def pwd(p: str):
if len(p)<6: return False
up = low = digit = False
for i in p:
if i.isdigit():
digit = True
elif i.isupper():
up = True
elif i.islower():
low = True
return up+low+digit == 3
p = input()
if pwd(p):
print("密码合法")
else:
print("密码不合法")
def is_all_valid(big, small, num):
return big and small and num
def check_password(pwd: str) -> bool:
if len(pwd) < 6:
return False
has_big = False
has_small = False
has_num = False
valid_flag = False
for item in pwd:
if valid_flag:
break
if item.isalpha():
if item.isupper():
has_big = True
valid_flag = is_all_valid(has_big, has_small, has_num)
else:
has_small = True
valid_flag = is_all_valid(has_big, has_small, has_num)
elif item.isnumeric():
has_num = True
valid_flag = is_all_valid(has_big, has_small, has_num)
return valid_flag
if check_password(input('请输入密码:')):
print('密码合法')
else:
print('密码不合法')