为了密码安全,建议密码应包含大写字母、小写字母、数字和指定的特殊字符集等4种类型。若用户密码上述4种类型字符均包含,则密码安全级别为“高强度”;若包含其中的3种,则密码安全级别为“中强度”;若只包含其中的2种,则安全级别为“低强度”;若只包含其中的1种,则安全级别为“弱强度”;若1种都没包含,则安全级别为“极差”。输入任一密码,判断其安全级别是上述5种中的哪一种。
提示:
1. 大写字母、小写字母和数字等字符集可用string模块中的ascii_uppercase、ascii_lowercase、digits等变量得到;特殊字符集指定为'@#$&!*%+-'。
2. 将密码变成集合,分别与上述4种字符集进行交集运算,结果为非空集就是包含该类字符,空集就是不包含;非空集可用bool函数得到True,空集可用bool函数得到False。然后对这4个逻辑值求和(True等价为1,False等价为0),根据求和结果是0、1、2、3、4中的哪一个就可知道密码的安全级别。
3. 定义一个密码安全级别字典:{0:'极差', 1:'弱强度', 2:'低强度', 3:'中强度', 4:'高强度'},根据上述求和结果查字典即得密码安全级别。
import string
password = input("输入任一密码:")
s = set(password)
b1 = bool(s & set(string.ascii_uppercase))
b2 = bool(s & set(string.ascii_lowercase))
b3 = bool(s & set(string.digits))
b4 = bool(s & set('@#$&!*%+-'))
n = b1+b2+b3+b4
dic = {0:'极差', 1:'弱强度', 2:'低强度', 3:'中强度', 4:'高强度'}
print("安全级别是:",dic[n])
对bool函数和集合的运算的有了了解掌握是很容易做出来的,这些是python的基础知识。
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632
非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!
速戳参与调研>>>https://t.csdnimg.cn/Kf0y
写正则就能完成上述功能呢
https://blog.csdn.net/zhjmozhi/article/details/79346652
题目的提示已经很明白了,你按照提示写代码就可以了