专栏首页叶子陪你玩编程python常见错误与异常处理(上)

python常见错误与异常处理(上)

前言

本系列课程是针对无基础的,争取用简单明了的语言来讲解,学习前需要具备基本的电脑操作能力,准备一个已安装python环境的电脑。如果觉得好可以分享转发,有问题的地方也欢迎指出,在此先行谢过。

前言

写程序时,当代码多了以后是很容易出现错误的,有些可能是我们粗心造成的,而有些可能是我们考虑不周全导致的,甚至还有一些是你知识盲区导致的等等。

写程序出现错误是很正常不过的事情,尽管无法避免犯错,但是出现之后如何快速定位问题,解决问题,这种调试程序的能力是可以通过学习提升的。

常见的错误

在我们的程序出问题时,都会有一个报错提醒的,弄清楚你的程序是哪种错误,这个对于我们解决问题非常关键。有些一运行就报错,有些运行过程中出现报错,还有没报错,但是没有实现我们要的效果。

1.NameError

2.SyntaxError

少了引号

少了括号,一般会在下一行报错。

将关键词用来作为变量名

等于号和赋值符号弄混了

3.TypeError

类型错误,数字和字符进行运算操作,调用函数参数传递少了。

4.IndexError

索引错误,访问不存在的数据

5.AttributeError

属性错误,使用没有的属性。

6.IndentationError

忘记缩进,或者缩进方法不统一,空格和Tab键混用。

7.KeyError

访问不存在的键值

8.其它错误

分母不能为零。

打开文件时,找不到文件。

运行过程中报错,语法都是没问题的,因为我们不清楚python递归最多可以到多少层,所以当超过最大998时就报错了。

语义错误,这种是最难发现的,因为程序没有报错,但是效果却不符合我们的要求,比如下面的例子,如果你不清楚运算法则,很可能结果就不符合你的要求,导致很难找出错误。为了减少类似错误,可以将复杂的代码尽量拆分成简单的代码。

还有下面这种语义错误,循环变量和外面的变量相同,导致我们的结果和预期有出入。

本文分享自微信公众号 - 叶子陪你玩编程(gh_cd062460d25e),作者:青叶子

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-03-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 如何避免程序运行过程中出现错误中断程序?(下)

    本系列课程是针对无基础的,争取用简单明了的语言来讲解,学习前需要具备基本的电脑操作能力,准备一个已安装python环境的电脑。如果觉得好可以分享转发,有问题的地...

    用户7054460
  • python位运算的用法

    进制数应该都有了解过,我们平常使用的最多的就是10进制数,其实就是满十进一;进制数除了十进制,还有二进制,八进制,十六进制等。而在计算机中内部使用的就是二进制,...

    用户7054460
  • 【python入门系类课程 第三课 神奇的画笔】

    本系列课程是针对无基础的,争取用简单明了的语言来讲解,学习前需要具备基本的电脑操作能力,准备一个已安装python环境的电脑。如果觉得好可以分享转发,有问题的地...

    用户7054460
  • nodejs创建线程问题

    我们知道在nodejs中可以使用new Worker创建线程。今天有个同学恰好问到,怎么判断创建线程成功,这也是最近开发线程池的时候遇到的问题。nodejs文档...

    theanarkh
  • mac下自动切换输入法

    长久以来,输入法一直是困扰mac用户的一个问题;不过随着国内厂商的跟进,这种状况得到了极大的改善。不用自己去折腾什么鼠须管了,狼厂和企鹅都做的不错。

    weishu
  • 图像处理笔记(2)----OpenCV imread函数详解

    imread()读取图片文件,imread函数有两个参数,第一个参数是图片路径,第二个参数表示读取图片的形式,有三种:

    小火柴棒
  • 《Kotlin 程序设计》第二章 快速开始:HelloWorld

    程序的本质就是映射(函数)。比如说kotlinc这个程序,我们知道,Kotlin基于Java虚拟机(JVM),通过Kotlinc编译器生成的JVM字节码与Jav...

    一个会写诗的程序员
  • GitHub同步至Gitee

    登陆 Gitee 账号,点击右上角的 + 号,点击「从 GitHub 导入仓库」,在跳转的页面中授权 Gitee 访问。

    kirin
  • APK安装流程详解8——PackageManagerService的启动流程(下)

    那我们就来看下scanPackageLI(PackageParser.Package, int, int, long, UserHandle)方法

    隔壁老李头
  • AdderNet:我们真的需要深度学习中的乘法运算吗?(Computer Vision and Pattern Recognition)

    与简单的加法运算相比,乘法运算具有更高的计算复杂度。在深度神经网络中被广泛使用的卷积正是通过互相关来度量输入特征与卷积滤波器之间的相似性,这就涉及到浮点值之间的...

    DANDAN用户6837186

扫码关注云+社区

领取腾讯云代金券