在各种信息系统注册时通常需要设置用户名与密码,密码的设置既要方便用户记忆又要有足够的安全性。例如,某信息系统的登录密码设置时要求由8~20位英文字符组成,包含英文的大写字母、小写字母、数字、标点符号至少3种,不能含有空格字符。其中,标点符号为:!\"#$%&'()*+,-./:;<=>?@[\]^_`{|}~。给定用户设置的密码,请判断是否满足以上要求。我需要你用python语言结合正则表达式完成这个题目
时间: 2024-03-22 17:37:54 浏览: 75
TIA博途WINCC组态的触摸屏,如何设置只需输入密码,无需输入用户名即可登录?.docx
5星 · 资源好评率100%
好的,以下是使用 Python 正则表达式判断密码是否符合要求的代码:
```python
import re
def check_password(password):
# 判断密码长度是否在 8~20 个字符之间
if len(password) < 8 or len(password) > 20:
return False
# 判断密码是否包含空格字符
if ' ' in password:
return False
# 判断密码是否包含至少3种字符类型
types = 0
if re.search(r'[a-z]', password):
types += 1
if re.search(r'[A-Z]', password):
types += 1
if re.search(r'\d', password):
types += 1
if re.search(r'[!\"#$%&\'()*+,-./:;<=>?@[\]^_`{|}~]', password):
types += 1
if types < 3:
return False
# 如果符合要求,则返回 True
return True
```
上述代码中,我们首先判断密码的长度是否在 8~20 个字符之间,并且不包含空格字符。然后,我们使用正则表达式判断密码是否包含至少 3 种字符类型,包括小写字母、大写字母、数字和标点符号。最后,如果符合要求,则返回 True;否则,返回 False。
您可以使用以下代码来测试上述函数:
```python
password = input('请输入密码:')
if check_password(password):
print('密码符合要求!')
else:
print('密码不符合要求!')
```
请注意,上述代码只是一个示例,实际情况中,密码的设置应该更加复杂和严格,以保障系统的安全性。
阅读全文