相信大家对Python编程都不会陌生,这样你也会遇到不少报错的问题吧?特别是生信的小白,往往遇到报错的时候不知如何去解决,会造成不少的困扰。今天的推文会根据我个人经验总结一些常见的Python报错,和大家梳理一下与其相关的知识。
首先,我们会分两种情况去讨论,有报错信息和没有报错信息。
有报错信息
如果有报错信息就好办了,只要读懂了报错信息的内容,debug就解决一大半了。这里给大家总结了一些新手常见的报错信息:
Syntax Error
Syntax Error: Python语法错误。常见的错误有:
- 忘记了使用 引号去标记一个字符串。
- 忘记了在 def/if/for 语句中,放置 ":"。
- 在你的语句中,你使用的开括号"(" 和闭括号")"数目不同。
Attribute Error
Attribute Error:对象没有这个属性。但有时候类构造函数出了问题也会报这个错误,本来是__init__()
函数,但有几个类的构造函数成了__init_
,少了一个'_'
符号,也会发生这个错误。
Type Error
Type Error:对类型无效的操作。常见的错误有
- 尝试在错误类型的对象中使用运算符。
- 一个对象你以为它是有值的,但事实上它是None。
- 尝试调用一个函数,但使用了错误的数量或者类型的参数。
- 你在切割一个list的时候,用了非整数的数字。
Indentation Error
Indentation Error:缩进错误。常见的错误有:混淆使用了tab和空格进行分隔,行之间的缩进不一致。
Name Error
Name Error:未声明/初始化对象 (没有属性)。常见的错误有:
- 你拼错了变量,函数或者方法的名称。
- 你忘记import你所需的对应的模块了。
- 你忘记定义一个变量。
- 你的代码使用了 外部的变量,不在 其定义的范围内。
- 你在定义一个函数之前,就已经调用它了。
IO Error
IO Error:输入/输出操作失败,一般出现的情况是你尝试打开一个不存在的文件。
Key Error
Key Error:映射中没有这个键。你尝试去查找一个字典中不存在的键。
没有报错信息
如果没有报错信息,那么一般我们就要检查我们使用的if或者loops的语句。
使用了if语句
一般错误的形式有:不对等比较,比如你将一个字符串和数字进行比较,if 3 == "3"。另外条件语句中的优先顺序含糊不清,也会造成脚本无法运行,最好加一些括号进行区分。
使用了loops
loops,迭代是编程中很有用的一种方式,但是往往也会容易造成很大小错误,我个人遇到的错误有:
- 在list中,本应该历遍所有的值进行迭代,可是现在每次迭代都是一样的值。这是因为你在loop里面定义了一个list进行迭代,应该将它移到list外面。
- 你本来尝试将将loop中多行的结果输出到一个文件中,结果你发现你的输出文件只有一行。这是因为你在loop里面创建了输出文件,将它移到loop外面。
- 你使用range函数进行迭代,你发现最后一个值消失了。这是因为range函数是默认不包括最后的那个数字的,要将range函数中末尾的数字手动加上1。
最后给大家做了一张思维总结图,有助大家更好的梳理该推文的内容:
当然这只是我个人的总结,还有很多Python编程方方面面的问题都没有被包括。面对报错,最重要的是抱着学习的心态去学习,当你学会一个个慢慢地将问题解决,你的编程技能思维也逐步提高了。
网友评论