黑马程序员技术交流社区
标题:
python运行时的几个常见错误
[打印本页]
作者:
promo
时间:
2018-8-2 00:04
标题:
python运行时的几个常见错误
本人总结了几个导致程序报错的几个小总结。
1)忘记在 if, elif , else , for , while , class ,def 声明末尾添加 :(导致 “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!')
或者:if spam == 42:
print('Hello!')
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
)
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 = 12print('I have ' + numEggs + ' eggs.')
而你实际想要这样做:
numEggs = 12print('I have ' + str(numEggs) + ' eggs.')
或者:
numEggs = 12print('I have %s eggs.' % (numEggs))
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2