对于刚入门的 Pythonista 在学习过程中运行代码是或多或少会遇到一些错误,刚开始可能看起来比较费劲。随着代码量的积累,熟能生巧当遇到一些运行时错误时能够很快的定位问题原题。下面整理了一些常见的17个错误,等你写出的代码不怎么出现这些错误的时候,你的 Python 功力就上一个台阶了。换一句话说,当你成为一名合格的 Python 开发者后,你可能 “都写不出” 这类的错误。
免费学习推荐:python视频教程
1、
忘记在if,for,def,elif,else,class等声明末尾加:
会导致“SyntaxError :invalid syntax”如下:
if spam == 42 print('Hello!')
2、
使用= 而不是 ==
也会导致“SyntaxError: invalid syntax”
= 是赋值操作符而 == 是等于比较操作。该错误发生在如下代码中:
if spam = 42: print('Hello!')
3、
错误的使用缩进量
导致“IndentationError:unexpected indent”、“IndentationError:unindent does not match any outer indetation level”以及“IndentationError:expected an indented block”
记住缩进增加只用在以:结束的语句之后,而之后必须恢复到之前的缩进格式。该错误发生在如下代码中:
print('Hello!') print('Howdy!')
或者:
if spam == 42: print('Hello!') print('Howdy!')
4、
在 for 循环语句中忘记调用 len()
导致“TypeError: 'list' object cannot be interpreted as an integer”
通常你想要通过索引来迭代一个list或者string的元素,这需要调用 range() 函数。要记得返回len 值而不是返回这个列表。
该错误发生在如下代码中:
spam = ['cat', 'dog', 'mouse'] for i in range(spam): print(spam[i])
5、
尝试修改string的值
导致“TypeError: 'str' object does not support item assignment”
string是一种不可变的数据类型,该错误发生在如下代码中:
spam = 'I have a pet cat.' spam[13] = 'r' print(spam)
而正确做法是:
spam = 'I have a pet cat.' spam = spam[:13] + 'r' + spam[14:] print(spam)
6、
尝试连接非字符串值与字符串
导致 “TypeError: Can't convert 'int' object to str implicitly”
该错误发生在如下代码中:
numEggs = 12 print('I have ' + numEggs + ' eggs.')
而正确做法是:
numEggs = 12 print('I have ' + str(numEggs) + ' eggs.') numEggs = 12 print('I have %s eggs.' % (numEggs))
7、
在字符串首尾忘记加引号
导致“SyntaxError: EOL while scanning string literal”
该错误发生在如下代码中:
print(Hello!') print('Hello!) myName = 'Al' print('My name is ' + myName + . How are you?')
8、
变量或者函数名拼写错误
导致“NameError: name 'fooba' is not defined”
该错误发生在如下代码中:
foobar = &#<span>本文来源gaodai#ma#com搞*代#码9网#</span>39;Al' print('My name is ' + fooba) spam = ruond(4.2) spam = Round(4.2)