zoukankan      html  css  js  c++  java
  • 环境小硕的转化之路-28-面向对象编程方法的适应性训练

    前言

    这是面向对象编程的一些适应性训练,做完了就会产生新的思维->面向对象编程的思维。

    作业一

    '''
     补充代码实现:
    user_list = []
    while True:
    user = input(“请输入用户名:”)
    pwd = input(“请输入密码:”)
    email = input(“请输入邮箱:”)
    1. while循环提示用户输入:用户名、密码、邮箱(正则满足邮箱格式)
    2. 为每个用户创建一个对象,并添加到列表中。
    3. 当列表中的添加了3个对象后,跳出循环并以此循环打印所有用户的姓名和邮箱。如:
    '''
    import re
    user_list = []
    class User_info:
        def __init__(self,name,password,email):
            self.name = name
            self.password =password
            self.email = email
        pass
    while True:
        user = input('请输入用户名:')
        pwd = input('请输入密码:')
        email = input('请输入邮箱:')
        check_ret = re.search('[0-9a-zA-Z][w-._]*@[A-Za-z0-9-]+(.[A-Za-z0-9-]+)*.[a-zA-Z]{2,6}',email)
        if check_ret:
            user_info = User_info(user,pwd,email)
            user_list.append(user_info)
        else:
            print('please input correct email address.')
        if len(user_list) == 3:
            for i in user_list:
                print('我的名字是%s,邮箱为%s'%(i.name,i.email))
            break
    

      

    作业二

    '''
    补充代码:实现用户的注册和登陆
    '''
    
    class User:
        def __init__(self,name,pwd):
            self.name = name
            self.pwd = pwd
        pass
    class Account:
        def __init__(self):
            self.user_list = []#用户列表,数据格式:[Usr对象,usr对象]
            self.black_list = []#黑名单用户列表
        def login(self):
            '''
            用户登陆,用户输入用户名和密码并去user_list中检查用户是否合法
            :return:
            '''
            usrname = input('Please input the username.')
            usrpassword = input('Please input the userpassword.')
            c = 0
            while c <=3:
                for i in self.user_list:
                        if usrname in self.black_list:
                            print('oops,the account is locked.')
                            exit()
                        elif  usrname == i.name and usrpassword == i.pwd:
                            print('login successfully')
                            exit()
                        elif usrname == i.name and usrpassword != i.pwd:
                            print('wrong password')
                            c+=1
                        else:
                            print('The account do not exist. ')
            self.black_list.append(usrname)
        def register(self):
            '''
            用户注册,动态创建user对象,并添加到self.user_list中
            :return:
            '''
            usrname = input('Please input the user that you want to register.')
            usrpassword = input('Please input the userpassword that you want to register.')
            temporary_list = []
            for i in self.user_list:
                temporary_list.append(i.name)
            if usrname not in temporary_list:
                user_info = User(usrname, usrpassword)
                self.user_list.append(user_info)
            else:
                print('The username had been used.')
        def run(self):
            '''
            主程序,先进行两次用户注册,再进行用户登陆(3次重试机会)
           :return:
            '''
            for i in range(2):
                self.register()
            self.login()
    if __name__ == '__main__':
        obj = Account()
        obj.run()
    

      

  • 相关阅读:
    Linux安全-通过修改/etc/hosts.deny拒绝远程ssh暴力破解
    JS-二进制的处理者:Blob
    JS-二进制数据缓冲区ArrayBuffer
    axio源码分析
    【js】appendChild()具有移动性
    js实现-二进制数据转换为blob
    实现点击下载到本地的功能
    memo、useMemo、useCallback
    memoization缓存优化
    什么是纯函数?
  • 原文地址:https://www.cnblogs.com/negu/p/11741844.html
Copyright © 2011-2022 走看看