【Python打卡2019】20190516之判断密码强度-面向对象编程

0.目标描述

将密码强度判断的相关方法,封装到工具类PasswordTool类当中;

1.Python面向对象基础
  • 定义方法和Java类似,开头class加上类名;
  • __init_方法负责初始化类的属性;其中参数self代表本类的对象实例;
  • 与Java不同的是,创建对象只需要直接写上类名加上括号传入参数即可;
  • 调用时,使用指向对象的变量直接调用对应的方法即可;
2.代码与结果
"""
    定义与password相关的工具类
"""


class PasswordTool:
    """
        密码工具类
    """
    # 初始化属性
    def __init__(self,password): # self代表类本身的实例
        self.password = password
        self.strength_level = 0

    # 处理密码的方法
    def process_password(self):
        if self.has_number():  # 判断密码中是否存在数字,存在则评价加1
            self.strength_level += 1

        if self.has_letter():  # 判断密码中是否存在字母,存在则评级加1
            self.strength_level += 1

        if 8 <= len(self.password) <= 16:  # 如果密码长度符合要求则评级加1
            self.strength_level += 1

    # 判断密码当中是否存在数字
    def has_number(self):
        for c in self.password:
            if c.isnumeric():
                return True
        return False

    # 判断密码当中是否存在字母
    def has_letter(self):
        for c in self.password:
            if c.isalpha():
                return True
        return False


# 接收用户输入,并传入方法当中
def main():
    setting_times = 1
    while setting_times <= 3:
        pwd = input("请输入密码:")
        password_tool = PasswordTool(pwd)
        password_tool.process_password()
        stren_len = password_tool.strength_level
        print("第{}次输入的密码为{},此密码的强度为{}".format(setting_times, pwd, stren_len))
        setting_times += 1


if __name__ == '__main__':
    main()
Y:\Python\Anaconda\python.exe Y:/PythonWorkspace/PasswordReliablity/PasswordRank4.py
请输入密码:123
第1次输入的密码为123,此密码的强度为1
请输入密码:yanhao
第2次输入的密码为yanhao,此密码的强度为1
请输入密码:yanhao123
第3次输入的密码为yanhao123,此密码的强度为3

Process finished with exit code 0

3.废话续一下

前段时间因为赶论文,所以给了自己不打卡的借口;
特此提醒一下自己,还是应当坚持!干巴爹捏!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值