|  | 
 
| 
本帖最后由 咖啡的旅游记 于 2018-3-28 11:58 编辑
x
马上注册,结交更多好友,享用更多功能^_^您需要 登录 才可以下载或查看,没有账号?立即注册  
 方法中有形参的时候报错如下:
 ===================================================================
 Traceback (most recent call last):
 File "C:\Users\Administrator\Desktop\1.py", line 49, in <module>
 SelectML()
 File "C:\Users\Administrator\Desktop\1.py", line 15, in SelectML
 InsertML(name,phonenumber)
 UnboundLocalError: local variable 'name' referenced before assignment
 ====================================================================
 把形参全部去掉后,是不报错的,能完成题目的要求。请老师帮忙看下,为什么加上形参后 就一直提示错误呢?
 另外如果直接上去 输入 1 的话 报如上错误。但是先 2 插入信息后,再 1 就不报错了。
 ====================================================================
 print('|---欢迎进入通讯录程序---|')
 print('|--- 1:查询联系人资料 ---|')
 print('|--- 2:插入新的联系人 ---|')
 print('|--- 3:删除已有联系人 ---|')
 print('|--- 4:退出通讯录程序 ---|')
 '''0定义通讯录字典'''
 Maillist={}
 name=""
 phonenumber=""
 n=0
 '''1定义查询方法'''
 def SelectML():
 if len(Maillist)<=0:
 print("~~通讯录没有任何信息!!")
 InsertML(name,phonenumber)
 else:
 name=input("请输入您要查询联系人的姓名:")
 print('-->',name,'的电话号是',Maillist[name])
 
 '''2定义插入方法'''
 def InsertML(name,phonenumber):
 name=input("请输入要插入的姓名:")
 if name in Maillist:
 print("您输入的姓名在通讯录中存在")
 updateML=input("是否修改用户资料(YES/NO):")
 if updateML=='YES':
 phonenum=input("请输入需要添加联系人的电话:")
 Maillist[name]=phonenumber
 else:
 phonenumber=input("请输入需要添加联系人的电话:")
 Maillist[name]=phonenumber
 
 '''3定义删除方案'''
 def DeleteML():
 Maillist.clear()
 print("****通讯录已经清空****")
 
 '''4定义退出方法'''
 def ExitML():
 print("|--- 感谢您使用通讯录程序 ---|")
 
 '''逻辑主体'''
 while True:
 n=input("请输入相关的指令代码:")
 if n.isdigit():
 num=int(n)
 if 5>num>=1:
 if num==1:
 SelectML()
 elif num==2:
 InsertML(name,phonenumber)
 elif num==3:
 DeleteML()
 elif num==4:
 ExitML()
 break
 else:
 print("…您输入了错误的指令代码!!")
 else:
 print("…您输入了错误的指令代码!!")
 print('',end='\n\n')
 | 
 |