python 1•设置一个初始密码,长度大于等于6位,其中包含数字,小写字母和大写字母。程序要有提示信息。若不进行设置,按回车键退出。 2.若密码长度不符合要求,则要求重新输入,此处若按回车键也可退出。 3.长度符合要求,则强度+1;包含数字,则强度+1;包含小写宇母,则强度+1;包含大写宇母,则强度+1 4.初始密码设置完成后,需进行“是否重新设置密码”的提示,若重新设置,则修改密码,显示密码强度;若不重新设置,则显示“密码设置成功!”,并退出程序。
时间: 2023-09-28 18:10:59 浏览: 110
以下是 Python 代码实现:
```python
import re
# 判断密码是否符合要求的正则表达式
pattern = re.compile('^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])[0-9a-zA-Z]{6,}$')
while True:
# 读取用户输入的密码
password = input('请设置一个初始密码,长度大于等于6位,其中包含数字,小写字母和大写字母:')
# 用户没有输入密码,退出程序
if not password:
break
# 判断密码是否符合要求
if not pattern.match(password):
print('密码长度不符合要求或不包含数字、小写字母和大写字母,请重新输入(按回车键退出)')
continue
# 密码符合要求,计算密码强度
strength = 0
if re.search('[0-9]', password):
strength += 1
if re.search('[a-z]', password):
strength += 1
if re.search('[A-Z]', password):
strength += 1
# 显示密码强度
print('密码强度为:%d' % strength)
# 询问用户是否重新设置密码
choice = input('是否重新设置密码?(y/n)')
# 用户选择重新设置密码
if choice.lower() == 'y':
continue
# 用户选择不重新设置密码,退出程序
print('密码设置成功!')
break
```
在这个程序中,我们用 `re` 模块中的 `compile()` 函数创建了一个正则表达式对象,这个正则表达式用于判断密码是否符合要求。具体来说,它要求密码中必须包含至少一个数字、一个小写字母和一个大写字母,并且长度至少为 6。如果用户输入的密码不符合要求,则程序会要求用户重新输入,直到用户输入符合要求的密码为止。
如果用户输入的密码符合要求,程序会计算密码的强度。我们定义密码的强度为包含数字、小写字母和大写字母这三种字符类别的个数。比如密码 `abcd1234` 的强度为 2,因为它包含了小写字母和数字,但是没有大写字母。密码 `Abcd1234` 的强度为 3,因为它包含了所有三种字符类别。计算密码强度的代码如下:
```python
strength = 0
if re.search('[0-9]', password):
strength += 1
if re.search('[a-z]', password):
strength += 1
if re.search('[A-Z]', password):
strength += 1
```
最后,程序会询问用户是否重新设置密码。如果用户选择重新设置密码,则程序会再次进入密码输入循环;否则,程序会输出密码设置成功的提示信息,并退出程序。
阅读全文