qqw 发表于 2021-1-29 20:43:11

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
>>>

Twilight6 发表于 2021-1-29 20:51:35



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

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

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

qqw 发表于 2021-1-29 20:53:57

Twilight6 发表于 2021-1-29 20:51
自己的代码没问题的话,可能是你操作过程中有些问题

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

不不会是python版本导致的,安装的3.7版本

Twilight6 发表于 2021-1-29 21:03:54

qqw 发表于 2021-1-29 20:53
不不会是python版本导致的,安装的3.7版本


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

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

ValueError 传入无效参数报错

Twilight6 发表于 2021-1-29 21:07:57



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

qqw 发表于 2021-1-29 21:27:39

Twilight6 发表于 2021-1-29 21:07
Python 重开,然后重新执行代码试试看

重启电脑,第一次执行可以实现代码并未报错。但是关闭后再次打开运行仍然同样报错“NameError”

Twilight6 发表于 2021-1-29 21:35:20

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



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

qqw 发表于 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('请输入一个整数:')

qq1151985918 发表于 2021-1-29 21:48:20

很显然你的代码不对啊,你把你的代码发来看看才知道,你发正确答案怎么能知道你自己的错误?

qqw 发表于 2021-1-29 21:53:14

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

就是用的正确答案报错{:10_243:}

qq1151985918 发表于 2021-1-29 22:02:10

qqw 发表于 2021-1-29 21:53
就是用的正确答案报错

可能是版本问题,小甲鱼的答案是python 3.x 的 ,我刚看到你是2.7.14版本,还是换掉吧,刚学不要学2.x很少人用了,改学3.x

qqw 发表于 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打开了?

qq1151985918 发表于 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论坛)

qqw 发表于 2021-1-29 22:14:55

qq1151985918 发表于 2021-1-29 22:13
应该要修改注册表

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


谢谢
页: [1]
查看完整版本: 33节异常处理 动动手2