资讯专栏INFORMATION COLUMN

Python常见十六个错误集合,你知道那些?

HelKyle / 1090人阅读

摘要:解决方案同上,解决方案同上,中出现类似之类的报错这一类问题主要是在代码中有中文输入,这个解决方案是在代码开头加上。不然凡是输入中文输入法下的字符就会报错。

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

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

这个是刚遇到的问题,在LZ自己手打Inception net的时候,想赋一个名字的时候出错,其实这就是命名错误的问题,如果仔细看“×”是我在中文下打的符号,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.NameError: global name ‘datetime’ is not defined

解决方案同上,from datetime import datetime

6.NameError: global name ‘math’ is not defined

解决方案同上,import math

7.Python中出现类似ascii之类的报错

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

8.NameError: global name ‘listdir’ is not defined
import os

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

9.TypeError: ‘dict_keys’ object does not support indexing

这个问题是python版本的问题

#如果使用的是python2
firstStr = myTree.keys()[0]
#LZ使用的是python3
firstSides = list(myTree.keys())
firstStr = firstSides[0]

这是看决策树代码出现的问题,python3如果运行

firstStr = myTree.keys()[0]

就会报这个错误,解决办法就是先转换成list,再把需要的索引提取出来。

10.NameError: name ‘reload’ is not defined

这个是如果小伙伴们修改了自己写的module,在重载module时可能会出现的一个问题,解决方法还时很简单

import importlib
importlib.reload(your module)
11.SyntaxError: invalid character in indentifier

我这里先贴出它报错的那行代码是怎么显示的:

b = 6xao

这个LZ之前讲过一般出现ascii之类的问题就是混中文输入法了,出现这个问题着实尴尬,为什么?肉眼哪能看出来是中文输入法下的空格和英文输入法下的空格/(ㄒoㄒ)/~~,这个只能看到底哪行报错吧中文的空格替换成英文的空格才行,其它也没啥办法,最好在输入代码时少切换切换输入法形式。

12.NameError: name ‘xrange’ is not defined

python版本问题,不兼容,python3版本的换成range()函数就行了。

13.AttributeError: ‘list’ object has no attribute ‘testVec’

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

14.SyntaxError: Missing paraentheses in call to ‘print’

老生常谈了,python的版本问题,python3.X要加()。

print ("hello world!")
15.SystemError: cannot compile ‘Python.h’

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

#先更新下源啦
sudo apt-get update

#安装python-dev
sudo apt-get install python-dev 
16. no module named wx

缺少模块的解决还是很好解决的,缺啥装啥就行了

sudo apt-get install python-wxtools

Python接触时间不是很长,暂时遇到的错误还不时很多,所以就先写这么多!

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/41841.html

相关文章

  • Python试水

    摘要:你好,特别注意定义编码格式的这一行代码必须放在第一行或者第二行,一般如果第一行是提示位置的代码,那么定义编码格式的这一行就必须放在第二行,否则依然会提示错误。基本功能是进行成员关系测试和删除重复元素。 一、Hello,Python! 试水 test.py print 你好,Python! #python 2.x python (你好,Python!) #python 3.x 很不幸,第...

    zhjx922 评论0 收藏0
  • Python: 熟悉又陌生的字符编码

    摘要:常见的字符编码有编码,编码,编码等。码只规定了个字符的编码,这在美国是够用的。小结是一种针对的可变长度字符编码,它是的实现方式之一。 字符编码是计算机编程中不可回避的问题,不管你用 Python2 还是 Python3,亦或是 C++, Java 等,我都觉得非常有必要厘清计算机中的字符编码概念。本文主要分以下几个部分介绍: 基本概念 常见字符编码简介 Python 的默认编码 Py...

    Vultr 评论0 收藏0
  • unicode之痛【精校版】

    摘要:之痛原文地址译者校正实用编程指南这是我在所做的演讲。事实一和二共同造成了计算机设备结构与世界人类需求的一个冲突。就是为了解决之前的老的字符集问题。值意味着,失败时将会返回一个标准的替代字符。将使用进行了解码。 Unicode之痛原文地址: http://nedbatchelder.com/text...译者: yudun1989 校正: sicklife实用Unicode编程指南这是...

    zombieda 评论0 收藏0
  • PHP解析之六个魔术方法详解

    摘要:中把以两个下划线开头的方法称为魔术方法,这些方法在中充当了举足轻重的作用。析构方法是才引进的新内容。析构方法的声明格式方法体注意析构函数不能带有任何参数。那么为了解决这个问题,我们可以使用魔术方法。 PHP中把以两个下划线__开头的方法称为魔术方法(Magic methods),这些方法在PHP中充当了举足轻重的作用。 魔术方法包括: __construct(),类的构造函数 __d...

    qianfeng 评论0 收藏0

发表评论

0条评论

HelKyle

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<