Python常见报错及解决方案,建议收藏!

Python常见报错及解决方案,建议收藏!

正文

 大家好,我是Python人工智能技术

如果说写代码最害怕什么,那无疑是Bug。而对于新手来说,刚刚接触编程,在享受写代码的成就感时,往往也会被各式各样的Bug弄得晕头转向。

Python常见报错及解决方案,建议收藏!

今天,我们就做了一期Python常见报错的分享,拯救你的代码!

一. 缩进错误(IndentationError)

在Python中,所有代码都是通过正确的空格排列的。所以,无论是多出来空格,还是缺少空格,整个代码都不会运行,并且仅返回一个错误函数。

Python代码遵循PEP8空白规范,每一级缩进使用4个空格。

错误示例

a=1b=2if a

修正

a=1b=2if a

二. Tab 和空格混用(TabError)

此类报错是由于同时使用制表符和空格进行编码导致的,tab键本质上是制表符,而非缩进符。由于不同文本编辑器中制表符代表的空格宽度不一,建议使用空格。

三. 语法错误(SyntaxError)

语法错误的原因包含下列三种:

   1.无效语法(invalid syntax)

   标点符号遗漏,中英文符号混用,拼写错误,变量名或者函数名使用了关键字。

   2.标识符中有无效字符(invalid character in identifier)

   代码中出现了无法识别的字符,检查一下是否有多余字符或者中文字符。

   3.检查到不完整的字符串(EOL while scanning string litera)

   很多情况下是由于字符串两边的引号不统一。另外,搜索公众号Linux就该这样学后台回复“git书籍”,获取一份惊喜礼包。

错误示例

print( 'hello', 'world')

登录后复制

错误原因:逗号为中文逗号

报错信息:SyntaxError: invalid character inidentifier

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

登录后复制

错误原因:圆括号没有成对出现

报错信息:SyntaxError:unexpected EOF whileparsing

if name =="A"print("hello")

登录后复制

错误原因:忘记在if/elif/else/while/for/def/class等语句末尾添加冒号

报错信息:SyntaxError:invalid syntax

四. 变量名错误(NameErro)

变量名错误是最普通也是最常会遇到的内建报错类型,经常会出现在Python变量命名上,如果找不到变量就会引发NameError。关于变量名的规则,需要牢记以下几条:

变量名只能包含字母、数字和下划线,不可用数字开头;变量名不能包含空格,但可使用下划线来分隔其中的单词;不要将Python关键字和函数名用作变量名,如print;变量名应既简短又具有描述性;慎用小写字母l和大写字母O,因为容易被错看成数字1和0。

出现变量名错误,可以查看变量是否赋值,是否存在大小写不统一或者变量名写错了的情况,找到后加以修正。

错误示例

message = "Hello!"print(mesage)

登录后复制

错误原因:变量名拼写错误,误将massage拼写为masge

报错信息:NameError: name 'mesage' is not defined

五. 索引错误(IndexError)

索引是项目在数组或列表中的位置,当我们尝试从列表中访问元素或从列表中不存在的索引中访问元组时,就会发生这种异常。

例如,有一个包含10个元素的列表,索引在0到9之间,如果试图访问索引10或11或更多的元素,就会产生IndexError。

错误示例

a = [1,2,3]print(a[3])

登录后复制

错误原因:列表a中不存在第4个索引,列表的索引从0开始编号

报错信息:IndexError: string index out of range

六. 键错误(KeyError)

在读取字典中的key和value时,如 果key不存在,就会触发KeyError错误。

错误示例

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

登录后复制

错误原因:键‘f’不存在

报错信息:KeyError: 'f'

七. 类型错误(TypeError)

在程序中使用不正确或不受支持的对象类型时,会引发该错误。如果尝试调用不可调用的对象或通过非迭代标识符进行迭代,也会引发此错误。

错误示例

age=18print("我的年龄是"+age)

登录后复制

错误原因:在使用“+”做拼接的时候,必须使用字符串,或者 把数字用str()函数转化成字符串

报错信息:TypeError:can only concatenate str(not"int")to str

八. 属性错误(AttributeError)

特性引用和赋值失败时会引发属性错误。

此类错误的原因是尝试访问未知的对象属性,换句话说就是找不到对应对象的属性。可以检查类中构造函数__init__()是否写正确,左右两边各两条下划线。

以上就是Python常见报错及解决方案,建议收藏!的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2240956.html

(0)
上一篇 2025年2月26日 20:29:28
下一篇 2025年2月25日 18:33:34

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 使用 Pip 升级 Python 软件包

    你上次更新通过 Pip 安装的 Python 软件包是什么时候?大多数用户往往会忘记这些 Python 软件包也需要手动更新,因为仅仅更新系统存储库对于软件包来说是不起作用的。 因此,让我们花点时间看看如何使用 Pip,来更新旧的 Pyth…

    2025年2月26日 编程技术
    200
  • 七个实用的Python自动化代码,别再重复造轮子了!

    关于Python有一句名言:不要重复造轮子。 但是问题有三个: 1、你不知道已经有哪些轮子已经造好了,哪个适合你用。有名有姓的的著名轮子就400多个,更别说没名没姓自己在制造中的轮子。 2、确实没重复造轮子,但是在重复制造汽车。包括好多大神…

    2025年2月26日
    200
  • For-else:Python中一个奇怪但有用的特性

    导语 无论使用哪种编程语言,我们都会编写“if-else”语句,但是“for-else”呢? 对于许多语言来说,例如 C、C++ 和 Java,在一个循环后使用“else”是完全错误的。然而 Python 作为一门优雅的语言,拥有这个“奇怪…

    2025年2月26日
    200
  • 手把手教你用装饰器扩展 Python 计时器

    这是我们手把手教你实现 Python 定时器的第三篇文章。前两篇:分别是手把手教你实现一个 Python 计时器​,和用上下文管理器扩展 Python 计时器​,使得我们的 Timer 类方便用、美观实用。 但我们并不满足于此,仍然有一个用…

    2025年2月26日
    200
  • 自动化测试:Python常见的几种编程模式

    本章节给大家更新一下“Python语法规范与数据类型”相关内容,主要是为了让大家了解Python有什么类型的编程模式,掌握Python的基本语法,清楚怎么输出及命令行参数的基本应用,对Python的数据类型了解后,以便做更多的相关操作。 常…

    2025年2月26日 编程技术
    200
  • 如何在Python中操作MySQL?

    一. Python 操作数据库介绍 Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口。Python 数据库接口支持非常多的数据库,你可以选择适合你项目的数据库: Gad…

    2025年2月26日
    200
  • 当Python也来进行修图神器,发现是真的蛮好用的呢!!

    今天小编来和大家分享一下Python​在图像处理当中的具体应用,那既然是图像处理,那必然要提到opencv模块了,该模块支持与计算机视觉和机器学习相关的众多算法,并且应用领域正在日益扩展,大致有以下几种领域。 物体识别:通过视觉以及内部存储…

    2025年2月26日
    200
  • Python 的列表解析式是解决任务有效的方法吗?

    Python 是一种极其多样化和强大的编程语言!当需要解决一个问题时,它有着不同的方法。 列表解析式的优势 比循环更节省时间和空间。 需要更少的代码行。 可将迭代语句转换为公式。 如何在 Python 中创建列表 列表解析式是一种基于现有列…

    2025年2月26日
    200
  • 九个应知应会的单行Python代码

    当我们开始学习 Python 时,我们通常会优先编写能够完成工作的代码,而不会关注代码的可读性以及代码的简洁性和效率。 确切来说,这是完全没有问题的,但是有一些方法可以在不忽略可读性的情况下缩短我们的 Python 代码。单行 Python…

    2025年2月26日
    200
  • 利用Python打造一个语音合成系统

    正文 大家好,我是Python人工智能技术 背景 一直对语音合成系统比较感兴趣,总想能给自己合成一点内容,比如说合成小说,把我下载的电子书播报给我听等等。 语音合成系统 其实就是一个基于语音合成的工具,但是这个东西由于很多厂家都提供了API…

    2025年2月26日 编程技术
    200

发表回复

登录后才能评论