初入门的 Python小白 在运行代码时免不了会遇到一些错误,刚开始可能看起来比较费劲。
随着代码量的积累,熟能生巧,当遇到一些运行时错误时能够很快的定位问题原题。
我整理了常见的 10 个错误,希望能够帮助到大家。
1、忘记在 if,for,def,elif,else,class 等声明末尾加 :会导致SyntaxError :invalid syntax如下:
if spam == 42 print('Hello!')2、使用= 而不是 ==也会导致SyntaxError: invalid syntax
= 是赋值操作符,而 == 是等于比较操作
该错误发生在如下代码中:
if spam = 42: print('Hello!')2020最新python学习资源分享:1156465813
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 = 'Al' print('My name is ' + fooba) spam = ruond(4.2) spam = Round(4.2)9、方法名拼写错误
导致 AttributeError: 'str' object has no attribute 'lowerr'
该错误发生在如下代码中:
spam = 'THIS IS IN LOWERCASE.' spam = spam.lowerr()10、引用超过 list 最大索引
导致 IndexError: list index out of range
该错误发生在如下代码中:
spam = ['cat', 'dog', 'mouse'] print(spam[6])我建立了一个Python学习圈子:1156465813。在彼此的沟通可以我们可以得到很多学习经验,积累知识,群内有2020最新的python学习资料,大家可以一起讨论问题,共同进步。