|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
原题是这样,要输出如下结果:
答案的程序是这样的:
- 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()
复制代码
我写的程序是这样的:
- global data
- data = {}
- def login():
- print('|--- 新建用户:N/n ---|')
- print('|--- 登录账号:E/e ---|')
- print('|--- 退出程序:Q/q ---|')
- order = input('|--- 请输入指令代码:')
- if (order == 'N') or (order == 'n' ):
- name = input('请输入用户名:')
- for name in data:
- name = input('此用户名已经被使用,请重新输入:')
- else:
- keyword = input('请输入密码:')
- data.setdefault(name,keyword)
- print('注册成功,赶紧试试登录吧^_^')
- return login()
- if (order == 'E') or (order == 'e' ):
- name = input('请输入用户名:')
- while name not in data:
- name = input('您输入的用户名不存在,请重新输入用户名:')
- keyword = input('请输入密码:')
- if keyword == data[name]:
- print('欢迎进入XXOO系统,请点右上角的X结束程序!')
- else:
- print('密码不正确!')
-
- return
- login()
复制代码
我怎么感觉我写的一样能达到效果但是比答案短很多啊,但我不会分析实际的运行效率会差多少,因为现在电脑都很快,看不出区别。请问各位大神,我这么写能够又提高运行效率又简洁吗?
|
|