社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

为什么你的的Python脚本会报错无法运行?

生信菜鸟团 • 4 年前 • 360 次点击  

相信大家对Python编程都不会陌生,这样你也会遇到不少报错的问题吧?特别是生信的小白,往往遇到报错的时候不知如何去解决,会造成不少的困扰。今天的推文会根据我个人经验总结一些常见的Python报错,和大家梳理一下与其相关的知识。

首先,我们会分两种情况去讨论,有报错信息没有报错信息

有报错信息

如果有报错信息就好办了,只要读懂了报错信息的内容,debug就解决一大半了。这里给大家总结了一些新手常见的报错信息:

Syntax Error

Syntax Error: Python语法错误。常见的错误有:

  1. 忘记了使用 引号去标记一个字符串。

  2. 忘记了在 def/if/for 语句中,放置 ":"。

  3. 在你的语句中,你使用的开括号"(" 和闭括号")"数目不同。

Attribute Error

Attribute Error:对象没有这个属性。但有时候类构造函数出了问题也会报这个错误,本来是 __init__()函数,但有几个类的构造函数成了 __init_,少了一个 '_'符号,也会发生这个错误。

Type Error

Type Error:对类型无效的操作。常见的错误有

  1. 尝试在错误类型的对象中使用运算符。

  2. 一个对象你以为它是有值的,但事实上它是None。

  3. 尝试调用一个函数,但使用了错误的数量或者类型的参数。

  4. 你在切割一个list的时候,用了非整数的数字。

Indentation Error

Indentation Error:缩进错误。常见的错误有:混淆使用了tab和空格进行分隔,行之间的缩进不一致。

Name Error

Name Error:未声明/初始化对象 (没有属性)。常见的错误有:

  1. 你拼错了变量,函数或者方法的名称。

  2. 你忘记import你所需的对应的模块了。

  3. 你忘记定义一个变量。

  4. 你的代码使用了 外部的变量,不在 其定义的范围内。

  5. 你在定义一个函数之前,就已经调用它了。

IO Error

IO Error:输入/输出操作失败,一般出现的情况是你尝试打开一个不存在的文件。

Key Error

Key Error:映射中没有这个键。你尝试去查找一个字典中不存在的键。

没有报错信息

如果没有报错信息,那么一般我们就要检查我们使用的if或者loops的语句。

使用了if语句

一般错误的形式有:不对等比较,比如你将一个字符串和数字进行比较,if 3 == "3"。另外条件语句中的优先顺序含糊不清,也会造成脚本无法运行,最好加一些括号进行区分。

使用了loops

loops,迭代是编程中很有用的一种方式,但是往往也会容易造成很大小错误,我个人遇到的错误有:

  1. 在list中,本应该历遍所有的值进行迭代,可是现在每次迭代都是一样的值。这是因为你在loop里面定义了一个list进行迭代,应该将它移到list外面。

  2. 你本来尝试将将loop中多行的结果输出到一个文件中,结果你发现你的输出文件只有一行。这是因为你在loop里面创建了输出文件,将它移到loop外面。

  3. 你使用range函数进行迭代,你发现最后一个值消失了。这是因为range函数是默认不包括最后的那个数字的,要将range函数中末尾的数字手动加上1。

最后给大家做了一张思维总结图,有助大家更好的梳理该推文的内容:

当然这只是我个人的总结,还有很多Python编程方方面面的问题都没有被包括。面对报错,最重要的是抱着学习的心态去学习,当你学会一个个慢慢地将问题解决,你的编程技能思维也逐步提高了。

星期三是我的专题日哦,我已经坚持写作超过600天了,如果你喜欢我的文章,请你点一下文末右下角的好看按钮,推荐给更多好友,又或者点击收藏,都会给予我更多写作的动力。如果你想了解更多,又或者想撩一下小编,欢迎点击阅读原文,查看更多我的笔记~


      ■ 

全国巡讲约你

生信技能树(爆款入门培训课)全国巡讲约你

第一站-重庆  (已结束)

粤港澳大湾区专场 (已结束)

第二站-济南 (已结束)

千呼万唤进北京(已结束)

巡讲-广州和上海(已结束)

郑州和西安(全部结束)

第9、10站-武汉和成都(全部结束)

七月份我们不外出,只专注单细胞!

系统学习单细胞分析,报名生信技能树的线下培训,手慢无

一年一度的生信技能树单细胞线下培训班

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/36063
 
360 次点击