Python 编程常见错误集合 & 解决方案

使用python会出现各种各样的错误,以下是Python常见的错误以及解决方法。

1、ValueError: ‘Conv2d_1a_3×3’ is not a valid scope name

其实这就是命名错误的问题,如果仔细看“×”是我在中文下打的符号,python 是不认的,解决方案是使用英文字母”x“代替,错误即可解决

2、IndentationError:excepted an indented block

遇到这个问题简直是要哭了,因为并不是语法错误的问题,而是你代码书写规范的问题。因为 Python 是一个对代码缩进非常敏感的语言,你的循环结构就可能是依靠缩进的形式来表示的。最常见的问题就是 TAB 和 space 键的混用,这个是很容易报错的,而且肉眼很难分辨出来,有的代码编辑器可以选择显示空格,即便是这样,也很难找到到底哪里有问题。
其实,上面的报错还有一个原因经常遇到,就是无首行缩进,例如写 if 语句是,后面加冒号后如果直接换行,好的代码编辑器会自动首行缩进,但有些代码编辑器可能没有这个功能,这是需要你手动缩进,这是最好养成习惯,不要连续敲几次空格键,直接一下 TAB 就可以了,保持代码风格的一致在 Python 的使用中是非常重要的。

3、TypeError: max_pool2d() got an unexpected keyword argument ‘atride’

这个错误就是纯粹的手误问题了,你定义的函数中没有这个关键字,这时候就要自己查看定义的函数名字,我这里应该是”stride“,在卷积神经网络是定义步长的。

4、NameError: global name ‘time’ is not defined

这个问题是我在调用函数 time.time()用来计算时间损耗时,使用的函数时报错的,具体解决方案很简单,只要在代码开头加上 import time,把 time 库文件加进来就好了。

5、Python 中出现类似 ascii 之类的报错

这一类问题主要是在 Python 代码中有中文输入,这个解决方案是在代码开头加上:#coding:utf-8。不然凡是输入中文输入法下的字符就会报错。

6、NameError: global name ‘listdir’ is not defined

import os
这里需要注意几个问题,如果直接使用 import os 的时候,那么调用是就需要写成 os.listdir(),如果是使用 from os import *,那么是可以直接使用 listdir(),但是会出现模块之间的命名冲突问题,对代码的稳定性会有一定的影响,所以建议如果对模块函数还不是很熟悉的情况下还是使用第一种方法。

7、TypeError: ‘dict_keys’ object does not support indexing

这个问题是 python 版本的问题
image.png

8、NameError: name ‘reload’ is not defined

这个是如果小伙伴们修改了自己写的 module,在重载 module 时可能会出现的一个问题,解决方法如下:
image.png

9、AttributeError: ‘list’ object has no attribute ‘testVec’

这是说 list 没有这个属性,是啥问题呢?LZ 手残的把’,’打成了’.’,知道 python 应该都知道’.’这是要在 class 里定义才能有的性质,自己凭空写是没用的。

10、SystemError: cannot compile ‘Python.h’

这个问题就是没法解析 Python 的头文件,解决方法还是很简单的。
image.png

回帖
请输入回帖内容 ...