接触了很多Python爱好者,有初学者,亦有转行人。不论大家学习Python的目的是什么,总之,学习Python前期写出来的代码不报错就是极好的。下面,严小样儿为大家罗列出Python3十大经典错误及解决办法,供大家学习。

很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!
QQ群:1097524789

一、 SyntaxError 语法错误

(1)引号没有成对出现

报错信息:

SyntaxError:EOL while scanning string literal

错误示例:

string = 'hello world

解决方法:

字符串切记要放在引号中,单引号双引号无所谓。当一个字符串中包含单引号或双引号时,很容易出现引号不配对的情况。

(2)圆括号没有成对出现

报错信息:

SyntaxError:unexpected EOF while parsing

错误示例1:

result = (1024+(512*2)/128

错误示例2:

print('hello world'

解决方法:

使圆括号成对出现。在书写复杂的表达式或调用函数时会经常遇到这个问题。

(3)错误使用自操作运算符++或--等

报错信息:

SyntaxError:invalid syntax

错误示例:

v = 64
v++

解决方法:

在Python语言中,没有类似C语言的++或--等自操作运算符。与之类似功能的用法是+=或-=运算符。例如,使用下面的代码进行让变量v进行自增1的操作。

  1. v += 1

(4)试图使用等号(=)判断两个运算量是否相等

报错信息:

SyntaxError:invalid syntax

错误示例:

if v=64:2
print('hello world')

解决方法:

在Python语言中使用两个等号(==)作为判断两个运算量是否相等的关系运算符,而等号(=)是赋值运算符。

(6)错误使用Python语言关键字作为变量名

报错信息:

SyntaxError: can`t assign to keyword

错误示例:

False= 1

解决方法:

不要使用Python语言关键字作为变量名、函数名或类名等。在Python Shell窗口中,使用help('keywords')指令可以查看Python语言的关键字列表。

(7)忘记在if/elif/else/while/for/def/class等语句末尾添加冒号(:)

报错信息:

SyntaxError:invalid syntax

错误示例1:

a = '12345'
for i  in a print(i)

错误示例2:

def sayhi() print('Hi')

解决方法:

在if/elif/else/while/for/def/class等语句末尾添加冒号(:)即可。牢记语法规则,多多练习多多敲代码。

(8)错误地使用了中文标点符号

报错信息:

SyntaxError: invalid character in identifier

错误示例1:

print('hello','world')
# 错误原因:逗号是中文标点符号

错误示例2:

for i in range(10):
# 错误原因:冒号是中文标点符号

解决方法:

除了字符串中可以有中文外,其它任何情况均使用英文状态进行编辑。

二、 IndentationError 缩进错误报错信息:

IndentationError:unindent does not match any outer indentation level
IndentationError:expected an indented block

错误示例:

a = 2
while a < 0: print('hello') a -= 1
else: print('0.0')

解决方法:

上述代码中while语句体内的代码缩进没有对齐。正确使用缩进排版代码。当代码是从其它地方复制并粘贴过来的时候,这个错误较多见。

三、 NameError 名字错误

当变量名、函数名或类名等书写错误,或者函数在定义之前就被调用等情况下,就会导致名字错误。报错信息:

NameError: name 'pirnt' is not defined
NameError: name 'sayhi' is not defined
NameError: name 'pd' is not defined

错误示例1:

pirnt('hello world')
# 错误原因:print拼写错误。

错误示例2:

sayhi() def sayhi(): pass
# 错误原因:在函数定义之前对函数进行调用。

错误示例3:

pd.read_excel(r'file.xlsx')
# 错误原因:在调用pandas方法前并未导入pandas库或者并未起别名为pd。

解决方法:

正确书写变量名、函数名或类名等,在使用变量前先进行赋值,将函数的定义放在函数调用之前,在使用第三方库前先进行导入、调包等等。即保证某个名字(标识符)先存在,才能被使用。

四、 TypeError 类型错误

(1)整数和字符串不能进行连接操作

报错信息:

TypeError: Can`t convert 'int' object to str implicitly
TypeError: unsupported operand type(s) for + : 'float' and 'str'

错误示例1:

print('score:'+100)

错误示例2:

print(9.8 + 'seconds')

解决方法:

在整数、浮点数或布尔值与字符串进行连接操作之前,先使用str()函数将其转换为字符串类型。

(2)调用函数时参数的个数不正确,或者未传递参数

报错信息:

TypeError: input expected at most 1 arguments,got 2
TypeError: say() missing 1 required positional argument:'words'

错误示例1:

input('输入姓名','年龄')
# 错误原因:试图给input()函数提供第2个参数。

错误示例2:

def say(words): print(words) say()
# 错误原因:调用函数时未传递参数。

解决方法:

记住函数用法,了解函数的参数定义,使用正确的方法调用函数即可。

五、 KeyError 键错误

使用不存在的键名访问字典中的元素,就会发生这个错误。报错信息:

KeyError: 'c'

错误示例:

d = {'a':1,'b':2}
print(d['c'])

解决方法:

在访问字典中的元素时,先用in关键字检测要访问的键名是否存在,或者是使用字典和get()方法安全地访问字典元素。

六、 IndexError 索引错误

当访问列表的索引超出列表范围时,就会出现索引错误。报错信息:

IndexError: list index out of range

错误示例:

a = [1,2,3]
print(a[3])
# 错误原因:列表a中不存在第4个索引。列表的索引从0开始编号。

解决方法:

通过len()函数获取列表的长度,然后判断要访问的索引是否超出列表范围。

七、 UNboundLocalError 未初始化本地变量错误

在函数中,如果对未声明的全局变量进行修改操作,将会遇到这个错误。报错信息:

UnboundLocalError: local variable 's' referenced before assignment

错误示例:

s = 1 def test(): s += 1 print(s) test()
# 错误原因:在函数内对未声明的全局变量s进行了自增操作。
# Python将变量s视为一个本地的局部变量,但该变量未初始化。

解决方法:

在函数内使用全局变量时,使用global关键字对其进行声明即可。

八、 AttributeError 属性错误

报错信息:

AttributeError: 'tuple' object has no attribute 'append'
AttributeError: 'DataFrame' object has no attribute 'col'

错误示例1:

t = (1,2,3)
t.append(4)
# 错误原因:元祖不可变。

错误示例2:

df = pd.read_excel(r'data.xlsx')
df.col
# 错误原因:DataFrame没有col属性,应该为columns。

解决方法:

正确书写类的属性名,不要发生书写错误。深刻理解元祖,列表的区别,可将元祖转换为列表添加元素。

九、 ModuleNotFoundError 模块不存在

报错信息:

ModuleNotFoundError: No module named 'pandas'

错误示例1:

import pandas as pd
# 没有导入成功,报上面错误。

解决方法:

这种报错常见于两种场景中,第一、未下载、安装该模块;第二、将调用的模块路径与被调用的模块路径不一致等。第一种情况直接下载安装即可,在cmd中,pip install xxx;第二种情况电脑中可能存在多个版本的Python,建议保留一个常用的即可。

十、 FileNotFoundError 文件不存在

报错信息:

FileNotFoundError: File b'E:\test\test_data.csv' does not exist

错误示例:

pd.read_csv('E:\test\test_data.csv')
# 错误原因:路径中包含'\t',系统错误地认为是制表符。

解决方法:

在确保该路径下确实存在所写文件后,在读取文件路径前面加'r',表示只读,作为文件路径读取;或者使用双斜杠'\ \'来进行转义,形如:'E:\ \test\ \test_data.csv'。偶尔也会发生文件名、路径的确写错,犯一些低级错误。

结束语

报错,并不可怕,那是一个学习的机会。现在搜索引擎这么发达,只要把错误信息放进去,一搜就出来了各种解决之道。

Python编程的10个经典错误及解决办法相关推荐

  1. python编程时显示语法错误_Python编程的10个经典错误及解决办法

    接触了很多Python爱好者,有初学者,亦有转行人.不论大家学习Python的目的是什么,总之,学习Python前期写出来的代码不报错就是极好的.下面,严小样儿为大家罗列出Python3十大经典错误及 ...

  2. 【Python基础】Python3十大经典错误及解决办法

    ◆ ◆ ◆  ◆ ◆ 接触了很多Python爱好者,有初学者,亦有转行人.不论大家学习Python的目的是什么,总之,学习Python前期写出来的代码不报错就是极好的.下面,严小样儿为大家罗列出Pyt ...

  3. 初学rpa的十大经典错误及解决办法_Python3之十大经典错误及其解决办法

    作者 | 严小样儿 来源 | 统计与数据分析实战 接触了很多Python爱好者,有初学者,亦有转行人.不论大家学习Python的目的是什么,总之,学习Python前期写出来的代码不报错就是极好的.下面 ...

  4. unity消息队列判断字符串相等有错误_Python3十大经典错误及解决办法

    ◆ ◆ ◆  ◆ ◆ 接触了很多Python爱好者,有初学者,亦有转行人.不论大家学习Python的目的是什么,总之,学习Python前期写出来的代码不报错就是极好的.下面,严小样儿为大家罗列出Pyt ...

  5. python3经典实例_Python3十大经典错误及解决办法

    接触了很多Python爱好者,有初学者,亦有转行人.不论大家学习Python的目的是什么,总之,学习Python前期写出来的代码不报错就是极好的.下面,严小样儿为大家罗列出Python3十大经典错误及 ...

  6. [转载] Python3十大经典错误及解决办法

    参考链接: Python中的关键字2 ◆ ◆ ◆  ◆ ◆ 接触了很多Python爱好者,有初学者,亦有转行人.不论大家学习Python的目的是什么,总之,学习Python前期写出来的代码不报错就是极 ...

  7. Python3十大经典错误及解决办法

    一. SyntaxError 语法错误 (1)引号没有成对出现 报错信息: 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手. 很多已经做 ...

  8. Python: 编程遇到的一些问题以及网上解决办法?

    0.Python: TypeError: 'str' does not support the buffer interface,(点我) fp.write(url.encode("utf- ...

  9. python两数相加代码_一边学编程,一边学语数外,用python编程全排列10以内两数加法...

    原标题:一边学编程,一边学语数外,用python编程全排列10以内两数加法 编程并不神秘 编程只是解决问题的一共方法 python是一门编程语言 python是一种解决问题的编程工具 在小学阶段,学习 ...

最新文章

  1. PHP中IP地址与整型数字互相转换详解
  2. 数据库自动备份还原成新库脚本
  3. 深度学习福利入门到精通第三讲——VGGNet模型
  4. Permission denied:通过共享复制,与打包后解压,目录权限不一样
  5. STM32官方标准固件库下载及介绍
  6. seaborn无法下载数据的问题
  7. android抢qq红包源码,QQ抢红包插件实现,安卓源码,以及详细分析,androidqq抢红包源码,捡代码论坛整理...
  8. hmm 隐马尔可夫模型讲解
  9. android app消息推送,如何进行app消息推送(push)?
  10. 压力测试TPS总是上不去
  11. 谷歌google搜索打不开、谷歌gmail邮箱及相关服务无法登录的解决的方法
  12. qml+QQuickPaintedItem数学公式编辑器的实现
  13. iPhone7 plus分辨率行不行
  14. 简信CRM:CRM科学服务体系,促进企业销售增长
  15. 强化学习(1)-什么是强化学习
  16. 微信小程序九宫格布局
  17. 请上传sku预览图后重新操作_增值税专用发票申请开票限额操作指南
  18. chrome浏览器如何避免network报错:ERR_CERT_AUTHORITY_INVALID并添加为例外或继续前往
  19. 软件工程导图呈现——软件
  20. python自动进直播_(1/5)手把手教你如何录制b站直播,并且借助python实现部分自动化...

热门文章

  1. C 温故知新 之 指针:函数指针变量、指针型函数
  2. python 读shell
  3. hive mysql元数据表说明
  4. SpringMVC报错The request sent by the client was syntactically incorrect ()
  5. Android Studio 代码混淆
  6. 结对开发 随机产生数组并求最大子数组的和
  7. Custom Looks using Qt Style Sheets
  8. 那些年我看过的前端书
  9. Centos7.4系统下安装httpd,mariadb,php7.1环境运行禅道
  10. 消息队列面试 - 如何解决消息队列的延时以及过期失效问题?