用python编写程序。输入一个字符串,判断是否是一个合法的密码。密码规则如下:(完成) 1)密码至少有8个字符 2)密码只能包含英文字母和数字 3)密码至少包含2个数字。 密码合法,显示”密码合法”,否则显示”密码不合法”
时间: 2024-03-01 12:52:59 浏览: 188
编写一个程序接受用户输入的字符。如果输入的字符是0-9数字中的一个,则显示“您输入了一个数字”,否则显示“这不是一个数字”。
好的,我已经明白了你的问题。以下是 Python 代码实现:
```python
import re
password = input("请输入密码:")
# 判断密码长度是否小于 8
if len(password) < 8:
print("密码不合法")
else:
# 使用正则表达式判断密码是否只包含英文字母和数字
if not re.match(r'^[0-9a-zA-Z]+$', password):
print("密码不合法")
else:
# 统计密码中数字的个数
digit_count = 0
for char in password:
if char.isdigit():
digit_count += 1
if digit_count == 2:
print("密码合法")
break
else:
print("密码不合法")
```
以上代码中,使用 `re.match(r'^[0-9a-zA-Z]+$', password)` 判断密码是否只包含英文字母和数字,其中 `^` 表示字符串的开始位置,`[0-9a-zA-Z]+` 表示数字或字母可以出现一次或多次,`$` 表示字符串的结束位置。如果匹配成功则返回一个匹配对象,否则返回 `None`。
然后使用一个循环遍历密码中的每个字符,如果该字符是数字则将 `digit_count` 加一。如果 `digit_count` 等于 2,则说明密码中至少包含两个数字,输出“密码合法”,否则输出“密码不合法”。
阅读全文