Python初学者最容易犯的几个错误对于新手,初学Python时,总会遇到这样那样的报错,想要弄懂Python错误信息的含义可能还不知道怎 么做,这里列出了一些比较常见的Python报错问题,希望对于学习Python的人能够有些帮助。1)尝试连接非字符串值与字符串(导致 “TypeError:Can’tconvert‘int’objecttostrimplicitly”)该错误发生在 如下代码中:numEggs=12print(''Ihave''+numEggs+''eggs.'')而你实际想要这样做: numEggs=12print(''Ihave''+str(numEggs)+''eggs.'')或者:numEggs =12print(''Ihave%seggs.''%(numEggs))2)在字符串首尾忘记加引号(导致“SyntaxEr ror:EOLwhilescanningstringliteral”)该错误发生在如下代码中:print(Hello!'' )或者:print(''Hello!)或者:myName=''Al''print(''Mynameis''+myName+ .Howareyou?'')3)变量或者函数名拼写错误(导致“NameError:name‘fooba’isnotd efined”)该错误发生在如下代码中:foobar=''Al''print(''Mynameis''+fooba)或者:s pam=ruond(4.2)或者:spam=Round(4.2)4)方法名拼写错误(导致“AttributeError: ‘str’objecthasnoattribute‘lowerr‘”)该错误发生在如下代码中:spam=''THIS ISINLOWERCASE.''spam=spam.lowerr()5)引用超过list最大索引(导致“IndexErro r:listindexoutofrange”)该错误发生在如下代码中:spam=[''cat'',''dog'',''mo use'']print(spam[6])6)使用不存在的字典键值(导致“KeyError:‘spam’”)该错误发生在如下代码中:s pam={''cat'':''Zophie'',''dog'':''Basil'',''mouse'':''Whiskers''}print (''Thenameofmypetzebrais''+spam[''zebra''])7)忘记在?if,?elif?,? else?,?for?,?while?,?class?,def?声明末尾添加:(导致“SyntaxError:invalid syntax”)该错误将发生在类似如下代码中:ifspam==42print(''Hello!'')8)使用=而不是== (导致“SyntaxError:invalidsyntax”)=是赋值操作符而==是等于比较操作。该错误发生在如下代码中 :ifspam=42:print(''Hello!'')9)使用错误的缩进量。(导致“IndentationError:unex pectedindent”、“IndentationError:unindentdoesnotmatchanyoute rindetationlevel”以及“IndentationError:expectedanindentedblock ”)记住缩进增加只用在以:结束的语句之后,而之后必须恢复到之前的缩进格式。该错误发生在如下代码中:print(''Hello!'')p rint(''Howdy!'')或者:ifspam==42:print(''Hello!'')print(''Howdy!'')或者:i fspam==42:print(''Hello!'')10)在?for循环语句中忘记调用?len()(导致“TypeError: ‘list’objectcannotbeinterpretedasaninteger”)通常你想要通过索引来迭代一 个list或者string的元素,这需要调用?range()?函数。要记得返回len?值而不是返回这个列表。该错误发生在如下代码中 :spam=[''cat'',''dog'',''mouse'']foriinrange(spam):print(spam[i] )python一些最重要的内建异常类名总结AttributeError:属性错误,特性引用和赋值失败时会引发属性错误NameErr or:试图访问的变量名不存在SyntaxError:语法错误,代码形式错误Exception:所有异常的基类,因为所有python 异常类都是基类Exception的其中一员,异常都是从基类Exception继承的,并且都在exceptions模块中定义。IOE rror:一般常见于打开不存在文件时会引发IOError错误,也可以解理为输出输入错误KeyError:使用了映射中不存在的关键字 (键)时引发的关键字错误IndexError:索引错误,使用的索引不存在,常索引超出序列范围,什么是索引TypeError:类型错 误,内建操作或是函数应于在了错误类型的对象时会引发类型错误ZeroDivisonError:除数为0,在用除法操作时,第二个参数为 0时引发了该错误ValueError:值错误,传给对象的参数类型不正确,像是给int()函数传入了字符串数据类型的参数。希望上边的总结,对大家能够有一些帮助,如有不到之处,也希望多多指教,相互交流进步。本文由老男孩教育撰写 |
|