Eyberwhong 发表于 2022-11-7 20:00:26

小甲鱼的这道题,如何用列表实现?

请写一个密码安全性检查的代码代码:check.py

# 密码安全性检查代码
#
# 低级密码要求:
#   1. 密码由单纯的数字或字母组成
#   2. 密码长度小于等于8位
#
# 中级密码要求:
#   1. 密码必须由数字、字母或特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)任意两种组合
#   2. 密码长度不能低于8位
#
# 高级密码要求:
#   1. 密码必须由数字、字母及特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)三种组合
#   2. 密码只能由字母开头
#   3. 密码长度不能低于16位


小甲鱼的这道题,如果通过用户输入的字符串生成一个列表,检查列表元素的总体特征,可以如何实现?{:10_256:}

jackz007 发表于 2022-11-7 20:00:27

本帖最后由 jackz007 于 2022-11-8 11:26 编辑

      字符串和列表均属于可迭代对象,就可迭代对象的特性而言,二者根本没有分别,为什么一定要使用列表,难道字符串的功能特性还不够用?
prompt = '''请按照以下方式提升您的密码安全级别:
        1.密码必须由数字、字母及特殊字符三种组合
        2.密码只能由字母开头
        3.密码长度不能低于16位'''

p = input('请输入需要检查的密码组合: ')
if len(p) <= 8 or p . isalpha() or p . isdigit() :
    print('您的密码安全级别评定为 : 低' + '\n' + prompt)
elif len(p) >= 16 and p . isalpha() and any(c . isalpha() for c in p) and any(c . isdigit() for c in p) and any(c in '~!@#$%^&*()_=-/,.?<>;:[]{}|\\' for c in p) :
    print('您的密码安全级别评定为 : 高\n请继续保持')
else :
    print('您的密码安全级别评定为 : 中' + '\n' + prompt)

Eyberwhong 发表于 2022-11-8 19:08:05

jackz007 发表于 2022-11-8 10:43
字符串和列表均属于可迭代对象,就可迭代对象的特性而言,二者根本没有分别,为什么一定要使用列表 ...

我在做这道题时直接拐到列表方法,后来做不出来了看答案才发现用不着,虽然知道怎么做了但还是想了解一下有没有列表做法。
p.s.好简洁的代码,给了{:10_275:}
页: [1]
查看完整版本: 小甲鱼的这道题,如何用列表实现?