鱼C论坛

 找回密码
 立即注册
查看: 1892|回复: 3

[已解决]请哪位大佬帮看看,第14章的动动手作业,我这个代码怎么打印不了密码安全级别“高级

[复制链接]
发表于 2021-10-8 22:40:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
post=  input("请输入您的密码:")
symbols = r'''`!@#$%^&*()_+-=/*{}[]\|'";:/?,.<>'''
s = 0
for i in post:
    if i in symbols:
        s = 1
        break
if (post.isalnum()) and len(post)<= 8:
    print("您的密码安全级别为:低级\n","请按以下方式提升您的密码安全级别:\n"," 1. 密码必须由数字、字母及特殊字符三种组合\n""2. 密码只能由字母开头\n3. 密码长度不能低于16位\t")
elif (post.isalnum()) and (s == 1) and post[0].isalpha():
    print("您的密码安全级别为:高级")
else:
    print("您的密码安全级别为:中级\n","请按以下方式提升您的密码安全级别:\t"," 1. 密码必须由数字、字母及特殊字符三种组合\n""2. 密码只能由字母开头\n3. 密码长度不能低于16位\t")
最佳答案
2021-10-8 23:07:23
elif (post.isalnum()) and (s == 1) and post[0].isalpha():中isalnum()是仅含数字和字母(意味着不含其它字符),这与s == 1是不可能同时成立的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-10-8 23:07:23 | 显示全部楼层    本楼为最佳答案   
elif (post.isalnum()) and (s == 1) and post[0].isalpha():中isalnum()是仅含数字和字母(意味着不含其它字符),这与s == 1是不可能同时成立的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2021-10-8 23:38:21 | 显示全部楼层
等你继续完善的代码,打个卡
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-9 08:33:07 | 显示全部楼层
本帖最后由 傻眼貓咪 于 2021-10-9 08:56 编辑
def passwordLevels(password: str) -> str:
    """
    鉴别密码等级
        高级:包含数字,特殊字符,字母,字母开头,密码长度:length >= 16
        中级:包含数字,字母,密码长度:8 <= length < 16
        低级:只包含数字,密码长度:length < 8
    """
    if len(password) < 8:
        return "密码等级:低级" if all([bool(i.isdigit()) for i in password]) else "密码不符合任何等级"
    elif len(password) < 16:
        return "密码等级:中级" if password.isalnum() else "密码不符合任何等级"
    elif len(password) >= 16 and password[0].isalpha():
        a = [bool(i.isdigit()) for i in password]
        b = [bool(i.isalpha()) for i in password]
        return "密码等级:高级" if any(a) and any(b) and not password.isalnum() else "密码不符合任何等级"
    else: return "密码不符合任何等级"

def main():
    print(passwordLevels.__doc__)
    print(passwordLevels(input("请输入您的密码:")))

if __name__ == "__main__":
    main()
    鉴别密码等级
        高级:包含数字,特殊字符,字母,字母开头,密码长度:length >= 16
        中级:包含数字,字母,密码长度:8 <= length < 16
        低级:只包含数字,密码长度:length < 8

请输入您的密码:123456
密码等级:低级

请输入您的密码:abcd123456
密码等级:中级

请输入您的密码:abcde1234567@#$%^
密码等级:高级

请输入您的密码:23423423GFHGFFJF
密码不符合任何等级
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-13 03:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表