好友管理系统python代码遇到的错误

Python017

好友管理系统python代码遇到的错误,第1张

好友管理系统python代码遇到的错误有五种。

1、变量名错误NameError,试图访问的变量名不存在,比较常见的就是单词拼写错误。

2、语法错误SyntaxError,代码形式错误,循环、判断语句后面未加冒号。

3、代码缩进错误IndentationError,python的缩进非常严格,空格会报错。

NameError错误,比如:

结果

SyntaxError错误,比如:

结果:

ValueError错误,比如:

结果:

IndexError错误,比如:

结果:

IndentationError错误,也就是缩进错误,比如:

结果:

KeyError错误,比如:

结果:

AttributeError错误,属性错误,比如

结果:

对特定的错误进行捕获 ,用as可以自定义自己想要的提示信息,比如:

结果:

捕获多个异常 ,需要注意的是捕获多个异常时要用(),因为except后面只能接一个参数,比如:

结果:

捕获全部异常时,可以用Exception,比如:

结果:

自定义错误信息,比如:

结果:

异常捕获中finally的使用。一般用于不管程序是否错误,程序最后都应该执行的步骤,例如在文件操作中,关闭文件是最后必须执行的操作,比如:

结果:

1.NameError变量名错误

报错:

>>>print a

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

NameError: name 'a' is not defined

解决方案:

先要给a赋值。才能使用它。在实际编写代码过程中,报NameError错误时,查看该变量是否赋值,或者是否有大小写不一致错误,或者说不小心将变量名写错了。

注:在Python中,无需显示变量声明语句,变量在第一次被赋值时自动声明。

>>>a=1

>>>print a

1

2.IndentationError代码缩进错误

代码:

a=1

b=2

if a<b:

print a

报错:

IndentationError: expected an indented block

原因:

缩进有误,python的缩进非常严格,行首多个空格,少个空格都会报错。这是新手常犯的一个错误,由于不熟悉python编码规则。像def,class,if,for,while等代码块都需要缩进。

缩进为四个空格宽度,需要说明一点,不同的文本编辑器中制表符(tab键)代表的空格宽度不一,如果代码需要跨平台或跨编辑器读写,建议不要使用制表符。

解决方案:

a=1

b=2

if a<b:

print a

3.AttributeError对象属性错误

报错:

>>>import sys

>>>sys.Path

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

AttributeError: 'module' object has no attribute 'Path'

原因:

sys模块没有Path属性。

解决方案:

python对大小写敏感,Path和path代表不同的变量。将Path改为path即可。

>>>sys.path

['', '/usr/lib/python2.6/site-packages']

python知识拓展:

使用dir函数查看某个模块的属性

>>>dir(sys)

['__displayhook__', '__doc__', '__egginsert', '__excepthook__', '__name__', '__package__', '__plen', '__stderr__', '__stdin__', '__stdout__', '_clear_type_cache', '_current_frames', '_getframe', 'api_version', 'argv', 'builtin_module_names', 'byteorder', 'call_tracing', 'callstats', 'copyright', 'displayhook', 'dont_write_bytecode', 'exc_clear', 'exc_info', 'exc_type', 'excepthook', 'exec_prefix', 'executable', 'exit', 'flags', 'float_info', 'getcheckinterval', 'getdefaultencoding', 'getdlopenflags', 'getfilesystemencoding', 'getprofile', 'getrecursionlimit', 'getrefcount', 'getsizeof', 'gettrace', 'hexversion', 'maxint', 'maxsize', 'maxunicode', 'meta_path', 'modules', 'path', 'path_hooks', 'path_importer_cache', 'platform', 'prefix', 'ps1', 'ps2', 'py3kwarning', 'setcheckinterval', 'setdlopenflags', 'setprofile', 'setrecursionlimit', 'settrace', 'stderr', 'stdin', 'stdout', 'subversion', 'version', 'version_info', 'warnoptions']

4.TypeError类型错误

4.1入参类型错误

代码:

t=('a','b','c')

for i in range(t):

print a[i]

报错:

TypeError: range() integer end argument expected, got tuple.

原因:

range()函数期望的入参是整型(integer),但却给的入参为元组(tuple)

解决方案:

将入参元组t改为元组个数整型len(t)

将range(t)改为range(len(t))