while循环
#密码安全性检查#低级:1)单纯由数字或字母组成2)长度小于8位
#中级:1)密码由数字,字母或特殊字符任意两种组合
# 2)长度不能低于8位
#高级:1)数字,字母,特殊字符三种
# 2)只能以字母开头
# 3)密码长度不能低于十六位
symbols=r'''`!@#$%^&*()_+-=/*{}[]\|'";:/?,.<>'''
chars='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
nums='0123456789'
passwd=input("请输入需要检查的密码组合:")
#判断长度
length=len(passwd)
while (passwd.isspace() or length==0):
passwd=input("您输入的密码为空(或空格),请重新输入:")
if length<=8:
flag_len=1
elif 8< length <16:
flag_len=2
else:
flag_len=3
flag_con=0
#判断是否包含特殊字符
for each in passwd:
if each in symbols:
flag_con +=1
break
#判断是否包含字母
for each in passwd:
if each in chars:
flag_con +=1
break
#判断是否包含数字
for each in passwd:
if each in nums:
flag_con +=1
break
#打印结果
#while 1:
print("您的密码安全级别为: ",end='')
if flag_len == 1 or flag_con==1:
print("低")
elif flag_len == 2 or flag_con==2:
print("中")
else:
print("高")
print("请继续保持")
#break
print("请按以下方式提升您的密码安全级别:\n\
\t1. 密码必须由数字、字母及特殊字符三种组合\n\
\t2. 密码只能由字母开头\n\
\t3. 密码长度不能低于16位")
#break
此参考答案中,while循环的作用是什么?我注释掉之后结果没什么影响
这是哪题答案来着?
目前看来,不注释掉才会出现问题,两个缩进都一样
本帖最后由 傻眼貓咪 于 2021-10-30 17:20 编辑
def levels(p: str) -> str:
"""
鉴别密码安全性等级
低级:由数字或字母其中一种组合组成,长度小于 8 位
中级:由数字、字母、或特殊字符任意两种组合组成,长度大于等于 8 位、小于 16 位
高级:由数字、字母、和特殊字符三种组合组成,以字母开头,长度大于等于 16 位
"""
symbol = [chr(i) for i in [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 58,\
59, 60, 61, 62, 63, 64, 91, 92, 93, 94, 95, 96, 123, 124, 125, 126]]
a = any()
b = any()
c = any()
if len(p) < 8:
return "密码等级:低级" if all() else "密码不符合任何等级"
elif len(p) < 16:
return "密码等级:中级" if (a and b and not c) or (b and c and not a) or (c and a and not b) else "密码不符合任何等级"
elif len(p) >= 16 and p.isalpha():
return "密码等级:高级" if a and b and not p.isalnum() else "密码不符合任何等级"
else: return "密码不符合任何等级"
def main():
print(levels.__doc__)
print(levels(input("请输入您的密码:")))
if __name__ == "__main__":
main() 大马强 发表于 2021-10-30 16:58
这是哪题答案来着?
目前看来,不注释掉才会出现问题,两个缩进都一样
第14课,0基础python课;缩进是没问题的, 注释掉之后调整了
页:
[1]