|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
user_data = {}
def new_user():
prompt = '请输入用户名:'
while True:
name = input(prompt) #为什么有的input需要定义输入数据是整型还是字符串,有的不用定义?怎么判断呢?
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('欢迎进入系统。。。')
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 'NnQqEe':
print('您输入的指令代码错误,请重新输入:')
else:
chosen = True #为什么会有这个步骤,不能直接elif吗?(经过测验直接elif发现是错的)
if choice == 'q' or choice == 'Q':
break
if choice == 'n' or choice == 'N':
new_user()
if choice == 'e' or choice == 'E':
old_user()
showmenu()
关于这个程序的疑问:1,为什么有的input需要定义输入数据是整型还是字符串,有的不用定义?怎么判断呢?
2, else:
chosen = True 为什么会有这个步骤,不能直接elif吗?
1. 要记住:input 永远返回字符串。
2. chosen = True 表示输入正确,需要退出循环(因为循环条件是 not chosen)。当然你也可以用 break 代替。
|
|