checkily 发表于 2018-2-22 11:03:28

python 34课try 的课后题,不懂,求解。

其它的代码我就不打,打关键的。
原来的代码是:
if instr == 2:
    name = input("请输入联系人姓名:")
    if name in contacts:
      print("你输入的姓名在通讯录中已存在-->>",end="")
      print(name+":"+contacts)
      if input("是否修改用户资料(YES/NO):")=="YES":
            contacts=input("请输入用户联系电话:")
    else:
      contacts=input("请输入用户联系电话:")

这个很好理解,把它改为用try语句后:
if instr == 2:
    name=input("请输入联系人姓名:")
    try:
      print("你输入的姓名在通讯录中已存在-->>",end="")
      print(name+":"+contacts)
      if input("是否修改用户资料(YES/NO):")=="YES":
            contacts=input("请输入用户联系电话:")
    except KeyError:
      contacts=input("请输入用户联系电话:")

try语句没有判断name 是否在contacts中啊,不明白啊。

°蓝鲤歌蓝 发表于 2018-2-22 11:10:06

这样子就算已经判断了。
如果 name in contacts,print(name+":"+contacts)
这一句就不会报错,否则就会报错,然后不会运行try,会运行expect,也就是 name not in contacts。

冬雪雪冬 发表于 2018-2-22 13:37:39

这样改:
if instr == 2:
    name = input("请输入联系人姓名:")
    try:
      print("你输入的姓名在通讯录中已存在-->>" + name+":"+contacts)
      if input("是否修改用户资料(YES/NO):")=="YES":
            contacts=input("请输入用户联系电话:")
    except KeyError:
      contacts=input("请输入用户联系电话:")

祝建宇 发表于 2020-8-27 10:36:43

try:
          contacts
            print('您输入的姓名在通讯录中已存在 -->> ', end='')
            print(name + ' : ' + contacts)
            if input('是否修改用户资料(YES/NO):') == 'YES':
                contacts = input('请输入用户联系电话:')
      except KeyError:
            contacts = input('请输入用户联系电话:')
红字这个是可以删除的吗?
页: [1]
查看完整版本: python 34课try 的课后题,不懂,求解。