- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
17个新手常见python错误
当初学 Python 时,想要弄懂 Python 的错误信息的含义可能有点复杂。这里列出了常见
的的一些让你程序 crash 的运行时错误。
1)忘记在 if ,elif,else,for,while,class,def声明末尾添加 :(导致
“SyntaxError :invalid syntax” )
该错误将发生在类似如下代码中:
1 ifspam 42
2 print(Hello!)
2)使用 而不是 (导致“SyntaxError:invalidsyntax” )
是赋值操作符而 是等于比较操作。该错误发生在如下代码中:
1 ifspam 42:
2 print(Hello!)
3)错误的使用缩进量。(导致“IndentationError:unexpected indent” 、
“IndentationError:unindentdoesnotmatchanyouterindetationlevel”
以及“IndentationError:expectedan indented block” )
记住缩进增加只用在以:结束的语句之后,而之后必须恢复到之前的缩进格式。该错误发生
在如下代码中:
0
1 print(Hello!)
0
2 print(Howdy!)
0
3
0
或者:
4
0
5
0
6 ifspam 42:
0
7 print(Hello!)
0
8 print(Howdy!)
0
9
1
或者:
0
1
1
1
2 ifspam 42:
1
3 print(Hello!)
4)在 for 循环语句中忘记调用 len() (导致“TypeError:listobject cannot be
interpretedas aninteger”)
通常你想要通过索引来迭代一个list或者string的元素,这需要调用 range()函数。要
记得返回len值而不是返回这个列表。
该错误发生在如下代码中:
1 spam [cat,dog,mouse]
2 foriinrange(spam):
3 print(spam[i])
5)尝试修改string的值 (导致“TypeError:strobject does not support item
assignment” )
string是一种不可变的数据类型,该错误发生在如下代码中:
1 spam I have a pet cat.
2 spam[13] r
3 print(spam)
而你实际想要这样做:
1 spam I have a pet cat.
2 spam spam[:13]+r+spam[14:]
3 print(spam)
6)尝试连接非字符串值与字符串(导致 “TypeError:Cantconvertintobjectto
strimplicitly” )
该错误发生在如下代码中:
1 numEggs 12
2 print(I have +numEggs+eggs.)
而你实际想要这样做:
1 numEggs 12
2 print(I have +str(numEggs)+eggs.)
3
4 或者:
5
6 numEggs 12
7 print(I have %s eggs.%(numEggs))
7)在字符串首尾忘记加引号 (导致“SyntaxError:EOLwhilescanning string
literal” )
该错误发生在如下代码中:
0
1 print(Hello!)
0
2
0
或者:
3
0
4
0
5 print(Hello!)
0
6
0
或者:
7
0
8
0
9 myName Al
1
0 print(My name is +myName+. Howare you?)
8)变量或者函数名拼写错误 (导致“NameError:name foobais not defined” )
该错误发生在如下代码中:
0
foobar Al
1
0
2 print(My name is +fooba)
0
3
0
或者:
4
0
5
0
6 spam ruond(4.2)
0
7
0
或者:
8
0
9
1
0 spam Round(4.2)
9
文档评论(0)