鱼C论坛

 找回密码
 立即注册
查看: 2158|回复: 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是不可能同时成立的
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

使用道具 举报

发表于 2021-10-8 23:38:21 | 显示全部楼层
等你继续完善的代码,打个卡
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

  20. if __name__ == "__main__":
  21.     main()
复制代码

  1.     鉴别密码等级
  2.         高级:包含数字,特殊字符,字母,字母开头,密码长度:length >= 16
  3.         中级:包含数字,字母,密码长度:8 <= length < 16
  4.         低级:只包含数字,密码长度:length < 8

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

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

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

  11. 请输入您的密码:23423423GFHGFFJF
  12. 密码不符合任何等级
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-17 00:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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