python使用程序进行合法用户名的验证,用户名的要求:长度大于等于 8 位,由字 母、数字和特殊字符组成,且每种都必须包含1个以上。请给出测试用例。
时间: 2024-10-07 09:08:04 浏览: 33
在Python中,你可以使用正则表达式(`re`模块)来进行合法用户名的验证。首先确保已经导入了`re`模块:
```python
import re
def is_valid_username(username):
# 正则表达式的模式,匹配至少1个字母、1个数字和1个特殊字符,总长度大于等于8
pattern = r"^(?=.*[a-zA-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$"
# 使用正则表达式匹配,如果匹配成功返回True,否则False
return bool(re.match(pattern, username))
# 测试用例
test_cases = [
{"username": "admin1!", # 包含字母、数字和特殊字符,长度大于8,预期为真
"expected_result": True},
{"username": "short", # 长度不足8,预期为假
"expected_result": False},
{"username": "onlynum12345", # 只有数字,预期为假
"expected_result": False},
{"username": "alphanum", # 只有字母和数字,预期为假
"expected_result": False},
{"username": "special@", # 只有特殊字符,预期为假
"expected_result": False},
]
for test in test_cases:
print(f"Username: {test['username']}, Expected Result: {is_valid_username(test['username'])} - Pass: {test['expected_result']} == {is_valid_username(test['username'])}")
```
运行上述代码,可以看到每个测试用例的结果是否符合预期。
阅读全文