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

本文详细介绍了Python编程中常见的错误类型,如缩进错误、命名错误、类型错误、字典和列表操作错误、模块加载问题等,提供了相应的解决方法和注意事项,旨在帮助初学者避免常见错误,提升编程技能。
摘要由CSDN通过智能技术生成
  • 错误示例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:
    自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)

极易碰到天花板技术停滞不前!**

因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

[外链图片转存中…(img-F9LmGuP7-1713613868643)]

[外链图片转存中…(img-IEV8117a-1713613868644)]

[外链图片转存中…(img-SrVwOXmc-1713613868645)]

[外链图片转存中…(img-qtb2Hqtw-1713613868646)]

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值