新手必看,10个常见的Python运行时错误

it2023-06-24  74

初入门的 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学习资料,大家可以一起讨论问题,共同进步。

最新回复(0)