33节异常处理 动动手2
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
>>>
自己的代码没问题的话,可能是你操作过程中有些问题
你重新将甲鱼哥的答案代码拷贝执行,应该就行了
NameError 是没有定义才报错的,按理不会报这个错误,而是 ValueError
Twilight6 发表于 2021-1-29 20:51
自己的代码没问题的话,可能是你操作过程中有些问题
你重新将甲鱼哥的答案代码拷贝执行,应该就行了 ...
不不会是python版本导致的,安装的3.7版本 qqw 发表于 2021-1-29 20:53
不不会是python版本导致的,安装的3.7版本
3.X 版本基本语法都没太大变化,而且报错原因是没变化的
NameError 没定义缺使用某个变量导致的报错
ValueError 传入无效参数报错
Python 重开,然后重新执行代码试试看
Twilight6 发表于 2021-1-29 21:07
Python 重开,然后重新执行代码试试看
重启电脑,第一次执行可以实现代码并未报错。但是关闭后再次打开运行仍然同样报错“NameError” qqw 发表于 2021-1-29 21:27
重启电脑,第一次执行可以实现代码并未报错。但是关闭后再次打开运行仍然同样报错“NameError”
发代码和执行结果截图看看
Twilight6 发表于 2021-1-29 21:35
发代码和执行结果截图看看
def int_input(prompt=''):
while True:
try:
int(input(prompt))
break
except ValueError:
print('出错,您输入的不是整数!')
int_input('请输入一个整数:')
很显然你的代码不对啊,你把你的代码发来看看才知道,你发正确答案怎么能知道你自己的错误? qq1151985918 发表于 2021-1-29 21:48
很显然你的代码不对啊,你把你的代码发来看看才知道,你发正确答案怎么能知道你自己的错误?
就是用的正确答案报错{:10_243:} qqw 发表于 2021-1-29 21:53
就是用的正确答案报错
可能是版本问题,小甲鱼的答案是python 3.x 的 ,我刚看到你是2.7.14版本,还是换掉吧,刚学不要学2.x很少人用了,改学3.x qq1151985918 发表于 2021-1-29 22:02
可能是版本问题,小甲鱼的答案是python 3.x 的 ,我刚看到你是2.7.14版本,还是换掉吧,刚学不要学2.x很 ...
是诶,但是为什么我保存完之后“Edit With IDLE”,就2.xx了,不是3.7打开了? 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论坛)
qq1151985918 发表于 2021-1-29 22:13
应该要修改注册表
.py文件右键Edit with IDLE的增删
谢谢
页:
[1]