本关任务:编写一个能校验输入密码合法性的小程序。 校验顺序和提示信息如下表: 校验顺序 校验内容 不符合时的提示信息 1 8≤长度≤16 密码长度为8-16位 2 不得包含空格 密码不能有空格 3 不能包含其他特殊字符 密码只能包含数字和英文字母 python代码
时间: 2024-12-18 17:24:15 浏览: 13
为了完成这个任务,我们可以按照提供的顺序和提示信息编写Python代码。这里有一个示例,使用`str.isalnum()`来检查只包含字母和数字的字符串:
```python
def validate_password(password):
# 校验顺序及提示信息
checks = [
(lambda p: 8 <= len(p) <= 16, "密码长度为8-16位"),
(lambda p: not any(' ' in s for s in p.split()), "密码不能有空格"),
(lambda p: all(c.isalnum() for c in p), "密码只能包含数字和英文字母")
]
errors = []
for check, message in checks:
if not check(password):
errors.append(message)
# 如果所有校验都通过,返回True,否则返回错误列表
return not errors if not errors else errors
# 用户输入
input_password = input("请输入密码:")
# 验证密码
result = validate_password(input_password)
if result == []:
print("密码合法")
else:
print("密码不合格:", ", ".join(result))
```
在这个代码里,我们首先定义了一个元组列表`checks`,每个元素包含一个用于检查的条件函数和相应的提示信息。然后逐个进行校验,并将不符合的提示信息加入到`errors`列表中。如果最终没有错误,说明密码是合法的。
阅读全文