Python案例—版本更新

'''
    作者:Z_Howe01
    版本:6.0
    功能:类,面向对象编程,定义一个文件工具类
    日期:2019/1/27

    面向过程(POP):以程序执行过程为设计流程的编程思想
    面向对象(OOP):以事物为中心的编程思想
    对象 ——> 包括属性和行为
    类(Class):某种类型集合的描述
        属性:类本身的一些特性
        方法:类所能实现的行为
            class —> (实例化) objects
            objects —> (抽象) class
        类的定义
            class ClassName
            __init__(self)构造函数:初始化对象的各个属性
            self 表示类的实例
    封装:
        将数据及相关操作打包在一起,支持代码重用
    继承:
        子类(subclass)借用父类(Superclass)的行为
    多态:
        在不同情况下用同一个函数启用不同方法
'''
class PasswordTool:
    '''
    密码工具类
    '''
    def __init__(self,password):

        # 类的属性
        self.password = password
        self.strength_level = 0
    def process_password(self):

        # 规则一:密码长度不少于8位
        if len(self.password) >= 8:
            self.strength_level += 1
        else:
            print('密码要求长度不少于8位!')

        # 规则二:密码中含有数字
        if self.check_number_exist():
            self.strength_level += 1
        else:
            print('密码要求含有数字!')

        # 规则三:密码中含有字母
        if self.check_letter_exist():
            self.strength_level += 1
        else:
            print('密码要求含有字母!')

    # 类的方法
    # 在类里面定义一个参数或函数,我们一般要加一个self
    def check_number_exist(self):
        previous_value = False
        for i in self.password:
            if i.isnumeric():
                previous_value = True
                break
        return previous_value

    def check_letter_exist(self):
        previous_value = False
        for i in self.password:
            if i.isalpha():
                previous_value = True
                break
        return previous_value

class FileTool:
    '''
        文件工具箱
    '''
    def __init__(self, filepath):
        self.filepath = filepath

    def write_to_file(self,line):
        f = open(self.filepath,'a')
        f.write(line)
        f.close()

    def read_from_file(self):
        f = open(self.filepath,'r')
        lines = f.readlines()
        f.close()
        return lines

def main():
    '''
        主函数 
    '''
    try_times = 5
    file_path = 'password_6.0.txt'

    # 实例化文件工具类对象
    file_tool = FileTool(file_path)

    while try_times > 0:

        password = input('请输入您要输入的密码:')
        # 实例化密码工具对象
        password_tool = PasswordTool(password)
        password_tool.process_password()

        line = '密码:{},强度:{}\n'.format(password,password_tool.strength_level)
        # 写文件操作
        file_tool.write_to_file(line)

        if password_tool.strength_level == 3:
            print('恭喜!密码设置成功!')
            break
        else:
            print('很抱歉,密码设置失败!')
            try_times -= 1
    if try_times <= 0:
        print('很抱歉,您设置密码次数过多!')

    # 读操作
    lines = file_tool.read_from_file()
    print(lines)

if __name__ == '__main__':
    main()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值