这几天想着复习复习前面学过的知识点,直接从佩奇老师的码云里找了几个小练习来巩固巩固。
补充代码:实现 户注册和登录。
原题:
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()
运行了一下直接结束了,才发现主程序忘写代码了哈哈哈
后续还会搬上来一些题,应该都是课后作业的最后一题,太简单的就不发了