补充代码实现用户注册和登录(Python小练习)

这几天想着复习复习前面学过的知识点,直接从佩奇老师的码云里找了几个小练习来巩固巩固。

补充代码:实现 户注册和登录。

原题:

class User:
    def __init__(self, name, pwd):
        self.name = name
        self.pwd = pwd


class Account:
    def __init__(self):
        # 用户列表,数据格式:[user对象,user对象,user对象]
        self.user_list = []

    def login(self):
        """
        用户登录,输入用户名和密码然后去self.user_list中校验用户合法性
        :return:
        """
        pass

    def register(self):
        """
        用户注册,没注册一个用户就创建一个user对象,然后添加到self.user_list中,表示注册成功。
        :return:
        """
        pass

    def run(self):
        """
        主程序
        :return:
        """
        pass


if __name__ == '__main__':
    obj = Account()
    obj.run()

我的答案:

import sys


class User:
    def __init__(self, name, pwd):
        self.name = name
        self.pwd = pwd

    def info(self):
        return (self.name, self.pwd,)


class Account:
    def __init__(self):
        # 用户列表,数据格式:[user对象,user对象,user对象]
        self.user_list = []

    def login(self):
        """
        用户登录,输入用户名和密码然后去self.user_list中校验用户合法性
        :return:
        """
        name = input()
        pwd = input()
        res = False
        for i in self.user_list:
            if name == i.info()[0] and pwd == i.info()[1]:
                res = True

        if res:
            print("登陆成功,跳转中,请稍后。")
            sys.exit(0)
        else:
            print("用户名或密码错误,请重新输入。")
            resp = input("重新登陆,请输入Y")
            self.login() if resp.upper() == "Y" else None

    def register(self):
        """
        用户注册,每注册一个用户就创建一个user对象,然后添加到self.user_list中,表示注册成功。
        :return:
        """
        while True:
            name = input()
            if name.upper() == "N":
                break
            pwd = input()
            p = User(name, pwd)
            self.user_list.append(p)

    def run(self):
        """
        主程序
        :return:
        """
        func_dict = {"1": self.register, "2": self.login}
        while True:
            choice = input("输入1注册,输入2登陆,输入n退出")
            if choice.upper() == "N":
                sys.exit(0)
            if choice in func_dict:
                func_dict[choice]()


if __name__ == '__main__':
    obj = Account()
    obj.run()

运行了一下直接结束了,才发现主程序忘写代码了哈哈哈

后续还会搬上来一些题,应该都是课后作业的最后一题,太简单的就不发了

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值