今天第一次写这么长的代码(对于自己来说。。。),反映出很多问题,但又有很多收益。
应该注意的地方
晒出来为了自己的提高,也为了缘鸟(有缘分的同鸟鸟(同为菜鸟的大触们))。
userDATA = {'曲曲': '123123'}
def new2build():
name = input('请输入新建用户姓名: ')
if name in userDATA:
while 1:
name2 = input('您所输入用户名已经被注册了,请重新输入: ')
if name2 in userDATA:
continue
else:
key2 = input('请输入密码: ')
userDATA[name2] = key2
print('注册成功!')
break
else:
key = input('请输入密码: ')
userDATA[name] = key
print('注册成功!')
def reg2sys():
regname = input('请输入用户名: ')
if regname in userDATA:
regkey = input('请输入密码: ')
if regkey == userDATA.get(regname): #注意这里要用.get 而不是.values
print('登陆成功!')
else:
while 1:
regkey4 = input('您输入的密码有误,请重新输入: ')
if regkey4 == userDATA.get(regname):
print('登录成功!')
exit() #这里不能用return, 因为return只能退出当前函数, 又会重新执行sysmenu()函数!!!
else:
continue
else:
regname2 = input('您输入的用户名不存在请重新输入: ')
while 1:
if regname2 in userDATA:
regkey2 = input('请输入密码: ')
if regkey2 == userDATA.get(regname2):
print('登录成功!')
exit()
else:
while 1:
regkey3 = input('您输入的密码有误,请重新输入: ')
if regkey3 == userDATA.get(regname2):
print('登录成功!')
exit()
else:
continue
else:
regname2 = input('您输入的用户名不存在请重新输入: ')
continue
def sysmenu(): #前两次搞复杂了,不用输入错误后,重新输入并赋值,直接打印然后重新执行该函数就行!!!!!!!
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':
return #也可以用 exit() 直接退出程序
if choice == 'n' or choice == 'N':
new2build()
if choice == 'e' or choice == 'E':
reg2sys()
sysmenu()