|
|
发表于 2019-11-1 15:32:48
|
显示全部楼层
本帖最后由 jackz007 于 2019-11-1 15:33 编辑
因为你的 sign() 在新建帐户和登录系统的时候都会被递归调用一次,而每退出一次就会打印一次 "欢迎使用本程序!",而且,你的操作越多,打印的次数就会越多,并不只限于三次。
楼主可以试试我修改的代码,基本可以接近实用:
- #-*- coding:gbk -*-
- count = {}
- while True:
- prompt = '''
- |---新建用户:N/n---|
- |---登录账号:E/e---|
- |---退出程序:Q/q---|
- 请输入指令代码 : '''
- m = input(prompt) . strip()
- if len(m):
- if m[0] in 'NnEeQq':
- if m[0] == 'N' or m[0] == 'n':
- print('\n\t **** 新建用户 ****\n')
- while True:
- name = input('请输入用户名: ') . strip()
- if len(name) :
- if name in count . keys():
- print('用户: %s 已经存在' % name)
- continue
- pas = input('请输入密码:') . strip()
- count[name] = pas
- print('用户: %s 创建成功' % name)
- break
- else:
- break
- elif m[0] == 'E' or m[0] == 'e':
- print('\n\t **** 登陆系统 ****\n')
- f = False
- while not f:
- name = input('请输入用户名: ') . strip()
- if len(name):
- if name in count . keys():
- while not f:
- pas = input('请输入密码:') . strip()
- if count[name] == pas:
- print('欢迎登录系统!!!')
- f = True
- else:
- print('密码错误')
- else:
- print('用户: %s 不存在' % name)
- else:
- break
- else:
- break
- else:
- break
- print('欢迎使用本系统')
复制代码 |
|