优秀程序员Python培训分享Python编程中常见的异常处理。今天总结分析一下python编程中经常遇到的一些错误和异常,虽然不会面面俱到,但是可以提供一种面对此类问题的思路,有助于提高python的编程能力。初学者在python中经常遇到的一些错误:以下错误类型的顺序基本上是按照从0到一定基础的过程中会遇到的一些报错问题:NameError:刚接触编程的朋友,是很容易犯这个错误,没有声明定义相应引用的变量,即你一无所获。找到对应的变量并声明。SyntaxError:这个错误是语法错误,比如有多个半括号,缺少半括号,忘记了for循环末尾的英文冒号等等。如果出现这个错误,说明你对python的语法不熟悉,多练习就好了。IndentationError:Incorrectindentation,不熟练python语法的明显表现,用tab键缩进更方便,比如普外科的一个小技巧,如果想在jupyter中批量缩进一堆代码,就选择这一堆代码,按tab键缩进,按shift+tab键整体推进代码。ImportError:开始出现这个错误,说明你有点基础了,开始换包了。但是我在python中使用第三方包不是很熟练。这里详细说一下每种方法的区别,以最常见的pandas为例importpandasaspd导入pandas包,记为pd。后面需要调用pandas库下的子函数API时,这样做:pd.read_csv此时我们调用pandas下的一个文件读取函数read_csv,它支持读取多种格式的文件,例如csv,tsv,txt等等等等,需要调查。 还有一种:frompandasimport*这个就是把pandas的一级下属的所有API接口都导入进来,相当于把一堆pandas的工具都扔给你了。一是占用空间,二是使用时要记住只有对应的功能才能使用,第一种方法可以使用tab补全,知道API接口的大概拼写。 还有一个方法:frompandasimportread_csv,concat这个比较简单,把需要的拿出来就行了。这种方法在调用特别大的包时比较好,比如sklearn,很少见importsklearnassl,就像负重前行。当您知道要使用哪些API时,这是最佳选择。TypeError:由于一些复杂的原因,这种类型的错误慢慢开始出现。例如:TypeError:argumentoftype'int'isnotiterableherebecauseintisnotiterable.TypeError:cannotunpacknon-iterableintobject这里循环的变量中的元素不是一个can。这种类型的错误需要你对python有一定的掌握。比如dict的key是不可重复的等等,你需要在error中积累这类知识。MoudleNotFoundError:您导入的包当前不可用。顺便说一下下载包的各种方法。首先,它在编译器中。这个操作不管是windows下还是公司的linux下都可以:!pipinstallmodule_name的感叹号是英文的,但是如果是阿里云、腾讯云、百度的ai-stduio等云服务器,一定要改需要制作:!pipinstall--usermodule_name这是一个小提示。我个人有预感,未来云服务器会越来越流行,至少在大数据算法爱好者中是这样。Windows,数据量稍微大点,动不动就死机,但是云服务器没有这个问题,而且现在很慢。SlowStart有限时免费的云服务器,以后说不定和流量一样便宜。ValueError:这通常是在拆解一个数据容器时,拆解的元素个数与分配的变量个数不匹配,例如:a,b,c=['1','1','1','1']里面有四个元素,外面有三个变量,肯定会报错ValueError:toomanyvaluestounpack(expected3)。当然,ValueError还有其他原因,例如:ValueError:ThetruthvalueofaSeriesisambiguousZeroDivisionError:这是因为你做除法时,除数为0造成的。python2和python3的划分不一样,有时候很容易犯这个错误。python2只取整数部分,不取整,例如:a=0.61/a在python2中会报错。其他情况如果报这个错误,需要检查你对应变量的精度设置,比如循环的指定条件是逐渐迭代累加一个初始为0的变量时,也容易出现这个错误,在机器学习算法或者推荐算法的召回率和准确率计算命中率差,数据质量差的情况下,很容易出现这个问题。IndexError:索引错误,超出范围。IndexError:listindexoutofrangeKeyError:KeyError出现,基本说明一开始可以用python,因为字典dict是python中使用最广泛的数据存储容器,学习字典的各种操作非常重要。FileNotFoundError:可能是开始使用python做一些数据分析预测,或者推荐算法,或者nlp或者cv,文件的路径或者文件格式,文件名错误,找不到文件。AttributeError:简单点说就是某个数据结构或类型没有某个操作,但是如果你硬要用这个操作,就会报错,例如:AttributeError:'tuple'objecthasnoattribute'remove'出现这样的错误时,说明你学了很多python的各种东西,把一些操作弄糊涂了。比如列表元素的添加是append,必须用update来添加到列表中,update是set或者dict,如下:AttributeError:'list'objecthasnoattribute'update'MemoryError:当你开始遇到这个错误,说明你对python的基础有基本的掌握,就是你在处理比较大的数据集的时候,你的程序太low了,比如各种循环,嵌套循环,电脑是被你包围,内存不足。这说明是时候开始学习python的数据结构和算法了,而且正式难度很大。小顶堆、大顶堆、二叉树、动态规划、链表、队列这些家伙开始出现在你的视野里,你开始看不懂一些稀奇古怪的小算法。所以这也验证了一句话,python入门容易,但是请看清楚,只是入门容易,不能一直站在门口,要努力。你往里走一点。因此,有必要进一步巩固基础的东西。这些每日错误报告只是对您的错误的反馈。你自己的学习过程也是机器学习训练和测试的过程。当你学到一些东西时,开始用练习来适应它。如果练习都是你做过的,对不起,过拟合了,当你去测试的时候,你的正确率会急剧下降,你需要修正你的训练集;测试上,underfitting,结果还是不好。因此,在这样一个不断迭代优化的过程中,我们学习到的知识模型的泛化能力越来越好。
