◆ ◆ ◆  ◆ ◆

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

一、 SyntaxError 语法错误

(1)引号没有成对出现

报错信息:

1SyntaxError:EOL while scanning string literal

错误示例:

1string = 'hello world

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

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

报错信息:

1SyntaxError:unexpected EOF while parsing

错误示例1:

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

错误示例2:

1print('hello world'

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

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

报错信息:

1SyntaxError:invalid syntax

错误示例:

1v = 64
2v++

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

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

报错信息:

1SyntaxError:invalid syntax

错误示例:

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

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

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

报错信息:

1SyntaxError: can`t assign to keyword

错误示例:

1False= 1

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

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

报错信息:

1SyntaxError:invalid syntax

错误示例1:

1a = '12345'
2for i  in a
3    print(i)

错误示例2:

1def sayhi()
2    print('Hi')

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

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

报错信息:

1SyntaxError: invalid character in identifier

错误示例1:

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

错误示例2:

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

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

二、 IndentationError 缩进错误

报错信息:

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

错误示例:

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

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

三、 NameError 名字错误

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

报错信息:

1NameError: name 'pirnt' is not defined
2NameError: name 'sayhi' is not defined
3NameError: name 'pd' is not defined

错误示例1:

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

错误示例2:

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

错误示例3:

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

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

四、 TypeError 类型错误

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

报错信息:

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

错误示例1:

1print('score:'+100)

错误示例2:

1print(9.8 + 'seconds')

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

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

报错信息:

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

错误示例1:

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

错误示例2:

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

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

五、 KeyError 键错误

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

报错信息:

1KeyError: 'c'

错误示例:

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

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

六、 IndexError 索引错误

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

报错信息:

1IndexError: list index out of range

错误示例:

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

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

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

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

报错信息:

1UnboundLocalError: local variable 's' referenced before assignment

错误示例:

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

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

八、 AttributeError 属性错误

报错信息:

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

错误示例1:

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

错误示例2:

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

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

九、 ModuleNotFoundError 模块不存在

报错信息:

1ModuleNotFoundError: No module named 'pandas'

错误示例1:

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

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

十、 FileNotFoundError 文件不存在

报错信息:

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

错误示例:

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

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

结束语

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

往期精彩回顾适合初学者入门人工智能的路线及资料下载机器学习及深度学习笔记等资料打印机器学习在线手册深度学习笔记专辑AI基础下载(pdf更新到25集)机器学习的数学基础专辑获取一折本站知识星球优惠券,复制链接直接打开:https://t.zsxq.com/yFQV7am本站qq群1003271085,加入微信群请扫码喜欢文章,点个在看

【Python基础】Python3十大经典错误及解决办法相关推荐

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

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

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

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

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

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

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

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

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

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

  6. Python编程的10个经典错误及解决办法

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

  7. SIP语音环境中十大经典问题及解决办法

    在VOIP的环境中,特别是基于SIP通信的环境中,我们经常会遇到一些非常常见的问题,例如,单通,30秒就断线,注册问题,回声等.这些问题事实上都有非常直接的排查方式和解决办法,用户可以按照一定的排查方 ...

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

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

  9. MySQL数据库“十宗罪”(十大经典错误案例)

    各位技术老铁们,福利来了!今天给大家说说<数据库中十大经典错误案例> 老张我在刚开始学习数据库的时候,没少走弯路.经常会遇到各种稀奇古怪的 error 信息,遇到报错会很慌张,急需一个解决 ...

最新文章

  1. Android EditText回车不换行
  2. web应用的负载均衡、集群、高可用(HA)解决方案
  3. UVa11019 Matrix Matcher(hash+kmp)
  4. STM32 LWIP TCP 数据包分包后合并,超过591字节后分会分包问题
  5. php与mysql同步_MySQL 同步(一)
  6. linux_unix编程手册-信号概述signal函数
  7. boost::fusion::iterator_range用法的测试程序
  8. java 延迟初始化_Java - 延迟初始化
  9. 记住,TCP是一种流协议
  10. Linux 线程到底是什么(比喻+图解)
  11. 谷歌浏览器下载、安装、配置。(保姆级详细教程。)
  12. 云真机兼容性测试方案
  13. 迅歌KTV服务器各型号,十大ktv必点歌曲排行榜 ktv点唱率最高的十首歌榜单公布...
  14. 神经网络的相关函数以及误差类型
  15. autojs切换输入法
  16. liu系统的混沌特性及其matlab仿真,Liu系统的混沌特性及其Matlab仿真
  17. 有关H5第六章的背景与阴影介绍
  18. 【有利可图网】小白设计师该如何创作电商广告Banner图?内附精华教程
  19. SpringBoot2.x 监听器详解
  20. 从flv文件中提取h264码流(使用av_bsf_send_packet和av_bsf_receive_packet)

热门文章

  1. [读者调查]新增一个读者调查!
  2. EF 如何更新多对多关系的实体
  3. redis哨兵集群的搭建
  4. 第四章 源代码的下载和编译
  5. GPUImage API 文档之GPUImagePicture类
  6. 如何将读书与自己的生活工作结合起来?
  7. String 字符串对象
  8. cross product
  9. winform之窗体固定
  10. 关于MSSQL存储过程中使用游标的一个小例子(学习)