python课后作业系统_Python 登录系统练习题的设计与改进 – 感觉对函数调用可能有误解...

学习Python,做课后作业的时候刚好碰到一道设计登录系统的练习题,额,题目如下:

尝试编写一个用户登录程序(尝试将功能封装成函数),程序实现如图:

额,程序从逻辑上来讲貌似不难,不过要求是用函数封装,然后,我可能对函数封装有什么误解,所以虽然功能实现了,但是这个程序就是不美观啊。代码如下:def log():

print('|--- 新建用户:N/n ---|')

print('|--- 登录账号:E/e ---|')

print('|--- 退出程序:Q/q ---|')

code = input('|--- 请输入指令代码:')

return code

login = {}

code = log()

if code == 'N' or code == 'n':

name = input('请输入用户名:')

password = input('请输入密码:')

login[name] = password

if name in login:

print('注册成功,赶紧登陆试试吧!')

print('\n')

code = log()

if code == 'N' or code == 'n':

name = input('请输入用户名:')

if name in login:

print('%s此用户名已经被使用,请重新输入:' % name ,end='')

name = input()

password = input('请输入密码:')

login.setdefault(name)

login[name] = password

if name in login:

print('注册成功,赶紧登陆试试吧^_^')

print('\n')

else:

print('用户名不存在,请新建用户')

print('\n')

code = log()

if code == 'E' or code == 'e':

name = input('请输入用户名:')

if name not in login:

print('您输入的用户名不存在,请重新输入:',end = '')

name = input()

if name in login:

print('请输入密码:',end = '')

password = input()

for each in login.values():

if password == each:

break

print('欢迎进入XXOO系统,请点击右上角的X结束程序!')

print('\n')

code = log()

while 1:

if code == 'Q' or code == 'q':

print('退出程序')

break

就这么轻松写完代码,测试功能发现完全和题目要求的是一毛一样,然后我沾沾自喜的以为完成了设计,但是对比了答案之后,一阵羞愧。user_data = {}

def new_user():

prompt = '请输入用户名:'

while True:

name = input(prompt)

if name in user_data:

prompt = '此用户名已经被使用,请重新输入:'

continue

else:

break

passwd = input('请输入密码:')

user_data[name] = passwd

print('注册成功,赶紧试试登录吧^_^')

def old_user():

prompt = '请输入用户名:'

while True:

name = input(prompt)

if name not in user_data:

prompt = '您输入的用户名不存在,请重新输入:'

continue

else:

break

passwd = input('请输入密码:')

pwd = user_data.get(name)

if passwd == pwd:

print('欢迎进入XXOO系统,请点右上角的X结束程序!')

else:

print('密码错误!')

def showmenu():

prompt = '''

|--- 新建用户:N/n ---|

|--- 登录账号:E/e ---|

|--- 推出程序:Q/q ---|

|--- 请输入指令代码:'''

while True:

chosen = False

while not chosen:

choice = input(prompt)

if choice not in 'NnEeQq':

print('您输入的指令代码错误,请重新输入:')

else:

chosen = True

if choice == 'q' or choice == 'Q':

break

if choice == 'n' or choice == 'N':

new_user()

if choice == 'e' or choice == 'E':

old_user()

showmenu()

答案的代码明显高大上,哎,自己的写的代码明显土鳖了。记录于此,勉之!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值