python的Error集,17个新手常见Python运行时错误

python及相关工具安装Error集
1. 如果升级python版本中出现error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No such file or directory
解决方法:
 vim /etc/ld.so.conf
添加:/usr/local/lib
执行:/sbin/ldconfig -v

2. 如果出现unknown url type: https
解决方法:
安装openssl-devel

3. 出现numpy.distutils.system_info.NotFoundError: no lapack/blas resources found
解决办法:
安装atlas atlas-devel.x86_64

4. 出现 Failedto build these modules:    binascii    zlib
解决办法:
安装zlib并重新编译python

5. 安装numpy报错RuntimeError: Running cythonize failed!
解决办法:
编译安装cython

6. 出现error: library dfftpack has Fortran sources but no Fortran compiler found
解决办法:
安装 gcc-gfortran.x86_64

7. 出现ImportError: No module named bz2:
解决办法:
yum install -y bzip2*
cd ../Python-2.7.3/Modules/zlib
./configure
make
make install
cd ../../
python setup.py install
重新编译python

8. 出现ImportError: libpython2.7.so.1.0: cannot open shared object file: No such file or directory
解决办法:
编译时只有加上--enable-shared,才会编译这个共享库,默认的位置是python可执行程序所在目录的lib目录下,如/usr/local/python2.7.4

1)忘记在 if , elif , else , for , while , class ,def 声明末尾添加 :(导致 “SyntaxError :invalid syntax”)

该错误将发生在类似如下代码中:

?
1
2
if  spam  = =  42
     print ( 'Hello!' )

2)使用 = 而不是 ==(导致“SyntaxError: invalid syntax”)

= 是赋值操作符而 == 是等于比较操作。该错误发生在如下代码中:

?
1
2
if  spam  =  42 :
     print ( 'Hello!' )

3)错误的使用缩进量。(导致“IndentationError:unexpected indent”、“IndentationError:unindent does not match any outer indetation level”以及“IndentationError:expected an indented block”)

记住缩进增加只用在以:结束的语句之后,而之后必须恢复到之前的缩进格式。该错误发生在如下代码中:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
print ( 'Hello!' )
     print ( 'Howdy!' )
或者:
if  spam  = =  42 :
     print ( 'Hello!' )
   print ( 'Howdy!' )
或者:
if  spam  = =  42 :
print ( 'Hello!' )

4)在 for 循环语句中忘记调用 len() (导致“TypeError: 'list' object cannot be interpreted as an integer”)

通常你想要通过索引来迭代一个list或者string的元素,这需要调用 range() 函数。要记得返回len 值而不是返回这个列表。

该错误发生在如下代码中:

?
1
2
3
spam  =  [ 'cat' 'dog' 'mouse' ]
for  in  range (spam):
     print (spam[i])

5)尝试修改string的值(导致“TypeError: 'str' object does not support item assignment”)

string是一种不可变的数据类型,该错误发生在如下代码中:

?
1
2
3
spam  =  'I have a pet cat.'
spam[ 13 =  'r'
print (spam)

而你实际想要这样做:

?
1
2
3
spam  =  'I have a pet cat.'
spam  =  spam[: 13 +  'r'  +  spam[ 14 :]
print (spam)

6)尝试连接非字符串值与字符串(导致 “TypeError: Can't convert 'int' object to str implicitly”)

该错误发生在如下代码中:

?
1
2
numEggs  =  12
print ( 'I have '  +  numEggs  +  ' eggs.' )

而你实际想要这样做:

?
1
2
3
4
5
6
7
numEggs  =  12
print ( 'I have '  +  str (numEggs)  +  ' eggs.' )
或者:
numEggs  =  12
print ( 'I have %s eggs.'  %  (numEggs))

7)在字符串首尾忘记加引号(导致“SyntaxError: EOL while scanning string literal”)

该错误发生在如下代码中:

?
1
2
3
4
5
6
7
8
9
10
print (Hello!')
或者:
print ('Hello!)
或者:
myName  =  'Al'
print ( 'My name is '  +  myName  +  . How are you?')

8)变量或者函数名拼写错误(导致“NameError: name 'fooba' is not defined”)

该错误发生在如下代码中:

?
1
2
3
4
5
6
7
8
9
10
foobar  =  'Al'
print ( 'My name is '  +  fooba)
或者:
spam  =  ruond( 4.2 )
或者:
spam  =  Round ( 4.2 )

9)方法名拼写错误(导致 “AttributeError: 'str' object has no attribute 'lowerr'”)

该错误发生在如下代码中:

?
1
2
spam  =  'THIS IS IN LOWERCASE.'
spam  =  spam.lowerr()

10)引用超过list最大索引(导致“IndexError: list index out of range”)

该错误发生在如下代码中:

?
1
2
spam  =  [ 'cat' 'dog' 'mouse' ]
print (spam[ 6 ])

11)使用不存在的字典键值(导致“KeyError:'spam’”)

该错误发生在如下代码中:

?
1
2
spam  =  { 'cat' 'Zophie' 'dog' 'Basil' 'mouse' 'Whiskers' }
print ( 'The name of my pet zebra is '  +  spam[ 'zebra' ])

12)尝试使用Python关键字作为变量名(导致“SyntaxError:invalid syntax”)

Python关键不能用作变量名,该错误发生在如下代码中:

?
1 class = 'algebra'

Python3的关键字有:and, as, assert, break, class, continue, def, del, elif, else, except, False, finally, for, from, global, if, import, in, is, lambda, None, nonlocal, not, or, pass, raise, return, True, try, while, with, yield

13)在一个定义新变量中使用增值操作符(导致“NameError: name 'foobar' is not defined”)

不要在声明变量时使用0或者空字符串作为初始值,这样使用自增操作符的一句spam += 1等于spam = spam + 1,这意味着spam需要指定一个有效的初始值。

该错误发生在如下代码中:

?
1
2
3
spam  =  0
spam  + =  42
eggs  + =  42

14)在定义局部变量前在函数中使用局部变量(此时有与局部变量同名的全局变量存在)(导致“UnboundLocalError: local variable 'foobar' referenced before assignment”)

在函数中使用局部变来那个而同时又存在同名全局变量时是很复杂的,使用规则是:如果在函数中定义了任何东西,如果它只是在函数中使用那它就是局部的,反之就是全局变量。

这意味着你不能在定义它之前把它当全局变量在函数中使用。

该错误发生在如下代码中:

?
1
2
3
4
5
someVar  =  42
def  myFunction():
     print (someVar)
     someVar  =  100
myFunction()

15)尝试使用 range()创建整数列表(导致“TypeError: 'range' object does not support item assignment”)

有时你想要得到一个有序的整数列表,所以 range() 看上去是生成此列表的不错方式。然而,你需要记住 range() 返回的是 “range object”,而不是实际的 list 值。

该错误发生在如下代码中:

?
1
2
spam  =  range ( 10 )
spam[ 4 =  - 1

也许这才是你想做:

?
1
2
spam  =  list ( range ( 10 ))
spam[ 4 =  - 1

(注意:在 Python 2 中 spam = range(10) 是能行的,因为在 Python 2 中 range() 返回的是list值,但是在 Python 3 中就会产生以上错误)

16)不错在 ++ 或者 -- 自增自减操作符。(导致“SyntaxError: invalid syntax”)

如果你习惯于例如 C++ , Java , PHP 等其他的语言,也许你会想要尝试使用 ++ 或者 -- 自增自减一个变量。在Python中是没有这样的操作符的。

该错误发生在如下代码中:

?
1
2
spam  =  1
spam + +

也许这才是你想做的:

?
1
2
spam  =  1
spam  + =  1

17)忘记为方法的第一个参数添加self参数(导致“TypeError: myMethod() takes no arguments (1 given)”)

该错误发生在如下代码中:

?
1
2
3
4
5
class  Foo():
     def  myMethod():
         print ( 'Hello!' )
=  Foo()
a.myMethod()
(0)

相关推荐

  • python identifier expected

    初学python常见错误 忘记写冒号 误用= 错误 缩紧 变量没有定义 中英文输入法导致的错误 不同数据类型的拼接 索引位置问题 使用字典中不存在的键 忘了括号 漏传参数 缺失依赖库 使用了pytho ...

  • 为什么有些高级开发人员不喜欢Python

    程式设计,以及为什么他们提倡像C ++这样的静态语言 > Photo by Alex Kotliarskyi on Unsplash 在上一篇文章中,关于最慢的现代编程语言,我讨论了像Pytho ...

  • 我整理了 Python新手 最容易犯错的 10个坑!

    我整理了 Python新手 最容易犯错的 10个坑!

  • 新手常见的python报错及解决方案

    此篇文章整理新手编写代码常见的一些错误,有些错误是粗心的错误,但对于新手而已,会折腾很长时间才搞定,所以在此总结下我遇到的一些问题.希望帮助到刚入门的朋友们.后续会不断补充. 目录 1.NameErr ...

  • Mac提示app损坏、Error,Mac电脑最常见错误的解决方案

    这篇文章蓝同学给大家分享一下Mac电脑上最常见错误的解决方案. 以下仅给出部分错误提示截图,类似的错误提示还有磁盘映像损坏.xxx.app有啥啥问题.... ①提示xxx.app已损坏,让你移到废纸篓 ...

  • 新手常见的驾驶习惯

    高速和省道的基础修建已经比较发达了,就算是乡村现在也全是水泥路,因为汽车已经成为我们交通出行的必备代步工具,道路上的车越来越多,会开车的人也越来越多.有的人开车技术非常娴熟,而有的新手司机就比较生疏了 ...

  • 涨停板打板新手常见问题解答

    下面由浅到深,一一为大家讲解: A问:你次次买到涨停板真厉害,我也想跟你提前埋伏买涨停,盘前能给我一只要涨停板的股票吗? 答:我说我不能,我只能盘中买涨停板.看我博客的朋友一定要看清楚,追涨停技术就是 ...

  • 【新提醒】沙皇、burgos:聊聊红灯酒吧新手常见的坑

    大马尼拉区 makati的burgos  相对来说还是靠谱一些的 知名的几个比如 plan B,kojax楼上楼下其实这两个是同一家. 一般只喝酒的话,是不贵的,一杯三四百,只要不给妞点啤酒(三米葛莱 ...

  • Python集成开发环境有哪些?常见种类!

    Python是非常容易学习的编程语言,对于初学者来说十分容易入门,当我们进行Python学习的时候挑选一个合适的开发工具,可以更好的提高我们的效率.那么Python开发工具有哪些?小编为大家介绍一下. ...

  • Python算法分为哪几类?常见分类!

    了解过Python的人,应该都听说过Python算法,但对其种类及定义却不是很清楚,那么你知道什么是算法吗?Python算法有哪几类呢?我们通过这篇文章来了解一下. 什么是算法? 算法是指解题方案的准 ...

  • 2021年ASCO摘要肺癌合集17(中文翻译版)大放送-最权威的传递最新肿瘤治疗进展的宝典

    ASCO2021会议摘要的翻译与整理都是广大同行牺牲周末或晚上的时间辛苦完成的,为了这项工作能每年持续下去和做得越来越好,期望大家帮对接一些愿意冠名赞助支持,全部费用将发放给这些辛苦奉献者,谢谢支持! ...

  • 新手入门Python,必学小知识

    Python基础教程 一.简介 Python的历史和为什么学习Python这里就不再赘述了.处于工作原因,对Python要进行深入的学习和研究,这里主要针对的就是Python具有的丰富和强大的库. P ...