Python 密码验证

'''
需求,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()

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值