- NameError
在python中,如果引用的变量未定义,则会报告NameError: name '变量名' is not defined。
如下代码抛出了一个异常:
代码语言:javascript复制!/usr/bin/env python
-- coding:utf-8 --
print 'hello world'
print 'hello %s' % name
报错信息如下:
代码语言:javascript复制Traceback (most recent call last):
File "hello.py", line 6, in <module
print 'hello %s' % name
NameError: name 'name' is not defined
解决方案:
代码语言:javascript复制name = 'world'
print 'hello %s' % name
原因:
变量name没有赋值。
提示:
一般来说,在python中,需要保证变量的定义在使用的前面。
- IndexError
在python中,如果list、tuple中的元素被引用的索引值超过了元素的个数,则会报告IndexError: list index out of range。
如下代码抛出了一个异常:
代码语言:javascript复制!/usr/bin/env python
-- coding:utf-8 --
list = ['a', 'b', 'c']
print list[0]
print list[3]
报错信息如下:
代码语言:javascript复制Traceback (most recent call last):
File "hello.py", line 7, in <module
print list[3]
IndexError: list index out of range
解决方案:
检查list的索引值。
原因:
list的索引值超过了list元素的个数。
- KeyError
在python中,如果dict中的key不存在,则会报告KeyError: 'key'。
如下代码抛出了一个异常:
代码语言:javascript复制!/usr/bin/env python
-- coding:utf-8 --
dict = {'name': 'bai', 'age': '27'}
print dict['name']
print dict['address']
报错信息如下:
代码语言:javascript复制Traceback (most recent call last):
File "hello.py", line 7, in <module
print dict['address']
KeyError: 'address'
解决方案:
检查dict的key。
原因:
dict中不存在address这个key。
- TypeError
在python中,如果一个对象不是内置对象的实例,则会报告TypeError。
如下代码抛出了一个异常:
代码语言:javascript复制!/usr/bin/env python
-- coding:utf-8 --
print 'hello world'
print 'hello %