鱼C论坛

 找回密码
 立即注册
查看: 2356|回复: 19

[已解决]try语句

[复制链接]
发表于 2017-12-12 14:46:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
捕获.PNG
这个语句如果没有name这个键,为什么不能把“姓名在通讯录中已经存在”打印出来呢,是要求,try中全部为正确的,才能全部一起执行么
最佳答案
2017-12-12 18:44:11
戈戈戈戈戈戈哒 发表于 2017-12-12 17:36
您好我把所有代码和问题放在了楼下,但是不知道怎么把图片放到回复里面,谢谢您~
  1. contacts = dict()

  2. while 1:
  3.     instr = int(input("输入指令:"))

  4.     if instr == 1:
  5.         name = input("请输入联系人姓名:")
  6.         try:
  7.             print(name + " : " + contacts[name])
  8.         except KeyError:
  9.             print("你输入的姓名在通讯录中不存在")

  10.     if instr ==2:
  11.         name = input("请输入联系人姓名:")
  12.         try:
  13.             print("你输入的姓名在通讯录中已存在 --》", end=" ")
  14.             print(name + " : " + contacts[name])
  15.             if input("是否修改用户资料(YES/NO):") == "YES":
  16.                 contacts[name] = input("请输入用户联系电话:")
  17.         except KeyError:
  18.             contacts[name] = input("请输入用户联系电话:")
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-12-12 14:57:18 | 显示全部楼层
把错误发一下。不是很理解。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-12 15:02:06 | 显示全部楼层
°蓝鲤歌蓝 发表于 2017-12-12 14:57
把错误发一下。不是很理解。

这个没有错误,就是这样写完之后,如果输入的键不在contact字典中的话,为什么不打印“您输入的名字在通讯录中已存在”的句子呢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-12 15:23:10 | 显示全部楼层
戈戈戈戈戈戈哒 发表于 2017-12-12 15:02
这个没有错误,就是这样写完之后,如果输入的键不在contact字典中的话,为什么不打印“您输入的名字在通 ...

贴一下完整代码,我这边是可以打印的。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-12 15:44:41 | 显示全部楼层
try语句要求里面的内容都是正确的才能执行,所以调试代码的时候不建议加try,最后再加来避免一些意想不到的错误。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-12 15:49:20 | 显示全部楼层
按道理来讲,前面没有判断语句的话,你这个运行的时候前面两个print都会打印出来的,就算后面有错误也会打印之后再报错。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-12 15:56:42 | 显示全部楼层
发生错误前的语句是可以执行的,如下:


1.jpg
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-12 16:23:33 | 显示全部楼层
捕获.PNG 捕获2.PNG
题目说如何变得更有效率,但是我就是觉得圈出来的两部分其实是不一样的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-12 17:36:45 | 显示全部楼层
°蓝鲤歌蓝 发表于 2017-12-12 15:49
按道理来讲,前面没有判断语句的话,你这个运行的时候前面两个print都会打印出来的,就算后面有错误也会打 ...

您好我把所有代码和问题放在了楼下,但是不知道怎么把图片放到回复里面,谢谢您~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-12 18:44:11 | 显示全部楼层    本楼为最佳答案   
戈戈戈戈戈戈哒 发表于 2017-12-12 17:36
您好我把所有代码和问题放在了楼下,但是不知道怎么把图片放到回复里面,谢谢您~
  1. contacts = dict()

  2. while 1:
  3.     instr = int(input("输入指令:"))

  4.     if instr == 1:
  5.         name = input("请输入联系人姓名:")
  6.         try:
  7.             print(name + " : " + contacts[name])
  8.         except KeyError:
  9.             print("你输入的姓名在通讯录中不存在")

  10.     if instr ==2:
  11.         name = input("请输入联系人姓名:")
  12.         try:
  13.             print("你输入的姓名在通讯录中已存在 --》", end=" ")
  14.             print(name + " : " + contacts[name])
  15.             if input("是否修改用户资料(YES/NO):") == "YES":
  16.                 contacts[name] = input("请输入用户联系电话:")
  17.         except KeyError:
  18.             contacts[name] = input("请输入用户联系电话:")
复制代码
QQ截图20171212184208.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-12 18:45:11 | 显示全部楼层

这个是我复制粘贴你的代码的一部分做出来的效果,感觉没问题啊。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-12 18:46:23 | 显示全部楼层
戈戈戈戈戈戈哒 发表于 2017-12-12 16:23
题目说如何变得更有效率,但是我就是觉得圈出来的两部分其实是不一样的

是不一样
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-12 21:13:14 | 显示全部楼层
我的通讯录代码:
  1. def Mnue():
  2.     print('|---欢迎进入通讯录程序---|')
  3.     print('|---1:查询联系人资料---|')
  4.     print('|---2:插入新的联系人---|')
  5.     print('|---3:删除已有联系人---|')
  6.     print('|---4:退出通讯录程序---|')
  7. def lookfor():
  8.     name=input('请输入联系人姓名:')
  9.     if name in dictlinkmans.keys():
  10.         print('联系电话:',dictlinkmans[name])
  11.     else:
  12.         print('查无此人')
  13. def addlinkmans():
  14.     namekey=input('请输入联系人姓名:')
  15.     telvalue=int(input('请输入联系电话:'))
  16.     if namekey in dictlinkmans.keys():
  17.         print('此联系人已存在')
  18.         print('联系电话:',dictlinkmans[namekey])
  19.     else:
  20.         dictlinkmans[namekey]=telvalue
  21.         print('添加成功')
  22.         print('联系电话:',dictlinkmans[namekey])
  23. def lesslinkmans():
  24.     namekey=input('请输入想删除的联系人姓名:')
  25.     if namekey in dictlinkmans.keys():
  26.         del dictlinkmans[namekey]
  27.         print('删除成功')
  28.     else:
  29.         print('没有此人')
  30. def choice():
  31.     while True:
  32.         try:
  33.             choice=int(input('请输入相关的指令代码:'))
  34.             if choice ==1:
  35.                 lookfor()
  36.             elif choice ==2:
  37.                 addlinkmans()
  38.             elif choice ==3:
  39.                 lesslinkmans()
  40.             elif choice ==4:
  41.                 print('退出程序')
  42.                 break
  43.             else:
  44.                 print('此代码没有相关指令')
  45.         except:
  46.             print('请输入相应的代码')
  47.             

  48. #主程序开始
  49. dictlinkmans=dict()
  50. Mnue()
  51. choice()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-13 11:05:23 | 显示全部楼层

谢谢您
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-13 11:06:17 | 显示全部楼层

那用try的except可以改的一样么
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-13 11:10:00 | 显示全部楼层
戈戈戈戈戈戈哒 发表于 2017-12-13 11:06
那用try的except可以改的一样么

两边的不同是左边的代码加了if判断,右边没有进行判断。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-13 14:28:42 | 显示全部楼层
°蓝鲤歌蓝 发表于 2017-12-13 11:10
两边的不同是左边的代码加了if判断,右边没有进行判断。

是不是目前就到了一个死循环了题目要求不能用if而用try,但是用try就不能一样了啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-13 15:51:30 | 显示全部楼层
戈戈戈戈戈戈哒 发表于 2017-12-13 14:28
是不是目前就到了一个死循环了题目要求不能用if而用try,但是用try就不能一样了啊

题目有说可以加while语句吗?
判断语句if 和 while都不准用的话,就难想出来了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-14 10:11:49 | 显示全部楼层
°蓝鲤歌蓝 发表于 2017-12-13 15:51
题目有说可以加while语句吗?
判断语句if 和 while都不准用的话,就难想出来了。

我看到了你加我好友,但是我还没有加好友权限谢谢你对我问题的答复~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-14 12:33:08 | 显示全部楼层
戈戈戈戈戈戈哒 发表于 2017-12-14 10:11
我看到了你加我好友,但是我还没有加好友权限谢谢你对我问题的答复~

恩,不用客气。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-3-4 17:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表