|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
print('|--- 新建用户:A ---|')
print('|--- 登录账号:B ---|')
print('|--- 退出程序:C ---|')
contact={'林声宇':'19679930915','符淑莲':'13876116083','小甲鱼':'23456'}
instr=(input("\n请输入相关指令:"))
if instr=='A':
name = input('请输入用户姓名:')
while True:
if name in contact:
name=input("此用户名已经被使用,请重新输入:")
key = input("请输入密码:")
contact.setdefault(name, key)
break
else:
key=input("请输入密码:")
contact.setdefault(name,key)
break
print("注册成功,赶紧试试登录吧!")
if instr == 'B':
name = input('请输入联系人姓名:')
while True:
if name not in contact:
name=input("此用户名不存在,请重新输入:")
continue
else:
break
key=input("请输入密码:")
pwd=contact.get(name)
if key==pwd:
print("欢迎进入系统!")
else:
print("密码错误!")
if instr == 'C':
print("欢迎进入系统!")
--------------------------------------------
运行:
Traceback (most recent call last):
File "E:/_Keil uVision3/89997.py", line 11, in <module>
if name in contact:
NameError: name 'name' is not defined
(求问各位大佬 这里的报错是什么意思呢?为什么我输入指令A就可以运行程序,输入B和C就会报错,name没定义是啥意思???)
本帖最后由 suchocolate 于 2021-10-12 18:11 编辑
缩进问题:
if 和while同级了,如果输入的不是A,执行到while里面时,name就没有赋值,所以报错。
应该这样写:
- contact = {'林声宇': '19679930915', '符淑莲': '13876116083', '小甲鱼': '23456'}
- while True:
- print('')
- print('|--- 新建用户:A ---|')
- print('|--- 登录账号:B ---|')
- print('|--- 退出程序:C ---|')
- instr = input("\n请输入相关指令:")
- if instr in ['a', 'A']:
- name = input('请输入用户姓名:')
- while True:
- if name in contact:
- name = input('此用户名已经被使用,请重新输入:')
- else:
- contact[name] = input("请输入密码:")
- print("注册成功,赶紧试试登录吧!")
- break
- elif instr in ['b', 'B']:
- name = input('请输入用户姓名:')
- while True:
- if name not in contact:
- name = input('此用户名不存在,请重新输入:')
- else:
- if contact[name] == input("请输入密码:"):
- print("登录成功!")
- break
- else:
- print("密码不正确!")
- elif instr in ['c', 'C']:
- print("退出程序")
- exit(0)
复制代码
|
|