|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
25课最后一题,为什么在程序字典里存入联系人和电话,运行查询的时候会报错,运行过程中插入的人名和电话就不会报错?
print('''
|--- 欢迎进入通讯录程序---|
|--- 1:查询联系人资料 ---|
|--- 2:插入新的联系人 ---|
|--- 3:删除已有联系人 ---|
|--- 4:退出通讯录程序 ---|''')
dict1 =dict((('张三',23213),('李四',3213214)))
while True:
a = int(input('请输入相关指令:'))
if a == 1:
name = input('请输入需要查询的人的姓名:')
if name in dict1:
print(name + ' : ' + dict1[name])
continue
else:
print('查无此人')
continue
if a == 2:
name = input('请输入姓名:')
if name in dict1:
print('您输入的姓名在通讯录中已存在 -->> ',end='')
print(name + ':'+ dict1[name])
flag = input('是否修改用户资料?(YES/NO)')
if flag == 'YES':
dict1[name] = input('请输入联系电话:')
continue
else:
continue
else:
dict1[name] = input('请输入联系电话:')
continue
if a == 3:
name = input('请输入联系人姓名:')
if name in dict1:
del(dict1[name])
continue
else:
print('查无此人')
continue
if a == 4:
break
else:
print("输入有误,请重新输入。\n")
print('''
|--- 感谢使用通讯录---|''')
Python 3.7.2 (tags/v3.7.2:9a3ffc0492, Dec 23 2018, 22:20:52) [MSC v.1916 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>>
================ RESTART: C:/Users/Administrator/Desktop/1.py ================
|--- 欢迎进入通讯录程序---|
|--- 1:查询联系人资料 ---|
|--- 2:插入新的联系人 ---|
|--- 3:删除已有联系人 ---|
|--- 4:退出通讯录程序 ---|
请输入相关指令:1
请输入需要查询的人的姓名:张三
Traceback (most recent call last):
File "C:/Users/Administrator/Desktop/1.py", line 16, in <module>
print(name + ' : ' + dict1[name])
TypeError: can only concatenate str (not "int") to str
>>>
本帖最后由 凌九霄 于 2018-12-30 20:58 编辑
当有字符串连接的时候,你要自行保证变量都是字符型,因为系统并不能隐含地自动转换。也就是说你需要将电话号码显式转化为字符串,如果你的电话号码非字符串的话。
print(name + ' : ' + str(dict1[name]))
|
|