【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.废话续一下

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

你可能感兴趣的:(Python)