''' 需求,3次机会输入密码需要包含字母和数字 '''
i = 1
while i <= 3:
password = input('输入8位包含数字和字母的密码:')
long = len(password)
if long != 8:
print('密码长度不对,请重新输入')
elif password.isalpha() or password.isdigit() or password.isspace():
print(f'输入的密码{password}不能只包含数字,字母或空格')
else:
print('密码符合要求')
break
i = i + 1
continue
else:
print('密码3次机会输入失败')
新增 类,自定义异常
"""
需求: 密码长度不足,则报异常(用户输入密码,如果输入的长度不足6位,则报错,即抛出自定义异常,并捕获该异常)。
"""
class ShortInputError(Exception): # 新建 ShortInputError 类,继承(Exception)基类
def __init__(self, length, min_len): # 定义 __init__ 带两形参,调用时需要输入
self.length = length
self.min_len = min_len
def __str__(self): # 魔法方法__str__,输出 类 的返回值
return f'你输入的密码长度为 {len(self.length)} 位, 要求长度为{self.min_len} 位'
def main():
try:
password = input('输入你的密码:')
if len(password) < 6:
# raise 抛出异常类,ShortInputError(password, 6), 带参数
# ShortInputError(password, 6) 有__str__定义 return 返回值
raise ShortInputError(password, 6) # raise + 异常类
except ShortInputError as e: # 捕获 raise 内容
print(e)
finally:
print('输入完成')
main()