15.校验密码是否合法:1)、输入一个密码要求长度在8-10位:len()函数,密码里面必须包含:大写字母、小写字母和数字:用集合、最多输入5次:for循环
时间: 2024-03-09 21:47:07 浏览: 28
好的,我可以为您编写一个校验密码的程序,代码如下:
```python
for i in range(5):
password = input("请输入密码:")
if len(password) < 8 or len(password) > 10:
print("密码长度必须在8-10位之间")
continue
if not any(c.isupper() for c in password):
print("密码必须包含大写字母")
continue
if not any(c.islower() for c in password):
print("密码必须包含小写字母")
continue
if not any(c.isdigit() for c in password):
print("密码必须包含数字")
continue
print("密码合法")
break
else:
print("输入次数已达上限")
```
程序会要求用户输入密码,并检查密码是否符合要求。如果不符合要求,程序会提示用户错误信息,然后继续要求用户输入密码,直到符合要求为止,或者用户输入次数达到5次之后程序结束。如果密码符合要求,程序会输出“密码合法”,然后结束。
相关问题
15.校验密码是否合法: 1)、输入一个密码要求长度在8-10位:len()函数 2)、密码里面必须包含:大写字母、小写字母和数字:用集合 3)、最多输入5次:for循环.
好的,我可以为你编写一个 Python 代码,用于校验密码是否合法,满足你的要求。以下是代码示例:
```python
for i in range(5):
password = input("请输入密码(长度在8-10位,必须包含大写字母、小写字母和数字):")
if len(password) < 8 or len(password) > 10:
print("密码长度不符合要求,请重新输入!")
continue
if not(set(password) & set('abcdefghijklmnopqrstuvwxyz')):
print("密码必须包含小写字母,请重新输入!")
continue
if not(set(password) & set('ABCDEFGHIJKLMNOPQRSTUVWXYZ')):
print("密码必须包含大写字母,请重新输入!")
continue
if not(set(password) & set('0123456789')):
print("密码必须包含数字,请重新输入!")
continue
print("密码合法!")
break
else:
print("您已经连续输入5次不合法的密码,请稍后再试!")
```
该代码使用了一个 for 循环,最多允许用户输入5次密码。每次输入密码后,会根据要求对密码进行校验,如果不合法则提示用户重新输入,直到密码合法或输入次数超过5次为止。其中使用了 len() 函数获取字符串的长度,使用 set() 函数构建集合,并使用 & 运算符判断集合的交集。
用Python校验密码是否合法:1.输入一个密码要求长度在8-10位:len()函数 2.密码里面必须包含:大写字母、小写字母和数字:用集合 3.最多输入5次:for 循环
好的,以下是Python代码实现:
```python
for i in range(5):
password = input("请输入密码:")
if 8 <= len(password) <= 10 and set(password).intersection(set("0123456789")) and \
set(password).intersection(set("abcdefghijklmnopqrstuvwxyz")) and \
set(password).intersection(set("ABCDEFGHIJKLMNOPQRSTUVWXYZ")):
print("密码合法!")
break
else:
print("密码不合法!请重新输入!")
```
解释一下代码:
- `for i in range(5):` 表示循环5次,即最多输入5次;
- `password = input("请输入密码:")` 表示让用户输入密码;
- `len(password)` 表示获取密码的长度;
- `set(password)` 表示将密码转换成集合类型;
- `set("0123456789")` 表示包含数字的集合;
- `set("abcdefghijklmnopqrstuvwxyz")` 表示包含小写字母的集合;
- `set("ABCDEFGHIJKLMNOPQRSTUVWXYZ")` 表示包含大写字母的集合;
- `set(password).intersection(set("0123456789"))` 表示求密码集合与数字集合的交集;
- `set(password).intersection(set("abcdefghijklmnopqrstuvwxyz"))` 表示求密码集合与小写字母集合的交集;
- `set(password).intersection(set("ABCDEFGHIJKLMNOPQRSTUVWXYZ"))` 表示求密码集合与大写字母集合的交集;
- `if 8 <= len(password) <= 10 and set(password).intersection(set("0123456789")) and \
set(password).intersection(set("abcdefghijklmnopqrstuvwxyz")) and \
set(password).intersection(set("ABCDEFGHIJKLMNOPQRSTUVWXYZ")):` 表示如果密码长度在8-10之间,并且包含大写字母、小写字母和数字,则密码合法;
- `print("密码合法!")` 表示输出密码合法提示信息;
- `break` 表示退出循环;
- `else:` 表示如果循环正常结束但没有找到合法密码,则输出密码不合法提示信息。