鼻屎炖蘑菇 发表于 2021-10-11 17:23:22

字典索引问题 菜鸟求助

contacts = dict(lin=19679930915,fu=13876116083)

while 1:
    instr = int(input('\n请输入相关的指令代码:'))
   
    if instr == 1:
      name = input('请输入联系人姓名:')
      if name in contacts:
            print(name + ' : ' + contacts)
      else:
            print('您输入的姓名不再通讯录中!')

    if instr == 2:
      name = input('请输入联系人姓名:')
      if name in contacts:
            print('您输入的姓名在通讯录中已存在 -->> ', end='')
            print(name + ' : ' + contacts)
            if input('是否修改用户资料(YES/NO):') == 'YES':
                contacts = input('请输入用户联系电话:')
      else:
            contacts = input('请输入用户联系电话:')

    if instr == 3:
      name = input('请输入联系人姓名:')
      if name in contacts:
            del(contacts)         
      else:
            print('您输入的联系人不存在。')
            
    if instr == 4:
      break

print('|--- 感谢使用通讯录程序 ---|')
索引字典的课后作业,我简写了一下,不知道为啥执行不出来,下面是程序报错的情况。
|--- 欢迎进入通讯录程序 ---|
|--- 1:查询联系人资料---|
|--- 2:插入新的联系人---|
|--- 3:删除已有联系人---|
|--- 4:退出通讯录程序---|

请输入相关的指令代码:1
请输入联系人姓名:lin
Traceback (most recent call last):
File "E:/_Keil uVision3/pop.py", line 17, in <module>
    print(name + ' : ' + contacts)
TypeError: can only concatenate str (not "int") to str
想问问各位大佬 我这边出错在哪呀 字典里的索引值标注不对嘛?
   

suchocolate 发表于 2021-10-11 17:50:22

本帖最后由 suchocolate 于 2021-10-11 17:54 编辑

TypeError: can only concatenate str (not "int") to str # 是说只能让字符串和字符串拼接,不能字符串和数字拼接。
看代码里,预设字典的值是数字,数字和字符串不能拼接,所以报错。
解决方法1:字典的值改成字符串
contacts = dict(lin='19679930915',fu='13876116083')
解决方法2:print改成格式化方式
print(f'{name} : {contacts}')



代码小白liu 发表于 2021-10-11 17:57:38

contacts = {"lin":"19679930915", "fu":"13876116083"}

while 1:1
    instr = int(input('\n请输入相关的指令代码:'))

    if instr == 1:
      name = input('请输入联系人姓名:')
      if name in contacts:
            print(name + ' : ' + contacts)
      else:
            print('您输入的姓名不再通讯录中!')

    if instr == 2:
      name = input('请输入联系人姓名:')
      if name in contacts:
            print('您输入的姓名在通讯录中已存在 -->> ', end='')
            print(name + ' : ' + contacts)
            if input('是否修改用户资料(YES/NO):') == 'YES':
                contacts = input('请输入用户联系电话:')
      else:
            contacts = input('请输入用户联系电话:')

    if instr == 3:
      name = input('请输入联系人姓名:')
      if name in contacts:
            del (contacts)
      else:
            print('您输入的联系人不存在。')

    if instr == 4:
      break

print('|--- 感谢使用通讯录程序 ---|')

代码小白liu 发表于 2021-10-11 18:02:26

或者   contacts = dict({"lin":"19679930915", "fu":"13876116083"})   涉及到字典的基础用法了
页: [1]
查看完整版本: 字典索引问题 菜鸟求助