鱼C论坛

 找回密码
 立即注册
查看: 1426|回复: 13

[已解决]33节异常处理 动动手2

[复制链接]
发表于 2021-1-29 20:43:11 | 显示全部楼层 |阅读模式

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

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

x
def int_input(prompt=''):
    while True:
        try:
            int(input(prompt))
            break
        except ValueError:
            print('出错,您输入的不是整数!')

int_input('请输入一个整数:')
(上边代码是小甲鱼额正确答案)为什么我输入字母,报错是NameError,而不是执行except?

报错如下:
请输入一个整数:asd

Traceback (most recent call last):
  File "C:\Users\Administrator\Desktop\新建文本文档.py", line 9, in <module>
    int_input('请输入一个整数:')
  File "C:\Users\Administrator\Desktop\新建文本文档.py", line 4, in int_input
    int(input(prompt))
  File "<string>", line 1, in <module>
NameError: name 'asd' is not defined
>>>
最佳答案
2021-1-29 22:02:10
qqw 发表于 2021-1-29 21:53
就是用的正确答案报错

可能是版本问题,小甲鱼的答案是python 3.x 的 ,我刚看到你是2.7.14版本,还是换掉吧,刚学不要学2.x很少人用了,改学3.x
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-1-29 20:51:35 | 显示全部楼层


自己的代码没问题的话,可能是你操作过程中有些问题

你重新将甲鱼哥的答案代码拷贝执行,应该就行了

NameError 是没有定义才报错的,按理不会报这个错误,而是 ValueError

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-29 20:53:57 | 显示全部楼层
Twilight6 发表于 2021-1-29 20:51
自己的代码没问题的话,可能是你操作过程中有些问题

你重新将甲鱼哥的答案代码拷贝执行,应该就行了 ...

不不会是python版本导致的,安装的3.7版本
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-29 21:03:54 | 显示全部楼层
qqw 发表于 2021-1-29 20:53
不不会是python版本导致的,安装的3.7版本



3.X 版本基本语法都没太大变化,而且报错原因是没变化的

NameError 没定义缺使用某个变量导致的报错

ValueError 传入无效参数报错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-29 21:07:57 | 显示全部楼层


Python 重开,然后重新执行代码试试看

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-29 21:27:39 | 显示全部楼层
Twilight6 发表于 2021-1-29 21:07
Python 重开,然后重新执行代码试试看

重启电脑,第一次执行可以实现代码并未报错。但是关闭后再次打开运行仍然同样报错“NameError”
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-29 21:35:20 | 显示全部楼层
qqw 发表于 2021-1-29 21:27
重启电脑,第一次执行可以实现代码并未报错。但是关闭后再次打开运行仍然同样报错“NameError”




发代码和执行结果截图看看

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-29 21:42:29 | 显示全部楼层
Twilight6 发表于 2021-1-29 21:35
发代码和执行结果截图看看
def int_input(prompt=''):
    while True:
        try:
            int(input(prompt))
            break
        except ValueError:
            print('出错,您输入的不是整数!')

int_input('请输入一个整数:')
QQ截图20210129214121.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-29 21:48:20 | 显示全部楼层
很显然你的代码不对啊,你把你的代码发来看看才知道,你发正确答案怎么能知道你自己的错误?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-29 21:53:14 | 显示全部楼层
qq1151985918 发表于 2021-1-29 21:48
很显然你的代码不对啊,你把你的代码发来看看才知道,你发正确答案怎么能知道你自己的错误?

就是用的正确答案报错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-29 22:02:10 | 显示全部楼层    本楼为最佳答案   
qqw 发表于 2021-1-29 21:53
就是用的正确答案报错

可能是版本问题,小甲鱼的答案是python 3.x 的 ,我刚看到你是2.7.14版本,还是换掉吧,刚学不要学2.x很少人用了,改学3.x
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-29 22:06:13 | 显示全部楼层
qq1151985918 发表于 2021-1-29 22:02
可能是版本问题,小甲鱼的答案是python 3.x 的 ,我刚看到你是2.7.14版本,还是换掉吧,刚学不要学2.x很 ...

是诶,但是为什么我保存完之后“Edit With IDLE”,就2.xx了,不是3.7打开了?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-29 22:13:27 | 显示全部楼层
qqw 发表于 2021-1-29 22:06
是诶,但是为什么我保存完之后“Edit With IDLE”,就2.xx了,不是3.7打开了?

应该要修改注册表

.py文件右键Edit with IDLE的增删
https://fishc.com.cn/thread-163849-1-1.html
(出处: 鱼C论坛)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-29 22:14:55 | 显示全部楼层
qq1151985918 发表于 2021-1-29 22:13
应该要修改注册表

.py文件右键Edit with IDLE的增删

谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-16 15:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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