完美解决丨#在python中,如果引用的变量未定义,则会报告NameError: name ‘变量名‘ is not defined。

2023-04-21 21:07:34 浏览数 (3)

  1. 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中,需要保证变量的定义在使用的前面。

  1. 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元素的个数。

  1. 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。

  1. TypeError

在python中,如果一个对象不是内置对象的实例,则会报告TypeError。

如下代码抛出了一个异常:

代码语言:javascript复制
!/usr/bin/env python
-- coding:utf-8 --
print 'hello world'
print 'hello %

0 人点赞