自己编程中遇到的Python错误和解决方法汇总整理Python教程

开个贴,用于记录平时经常碰到的Python的错误同时对导致错误的原因进行分析,并持续更新,方便以后查询,学习。知识在于积累嘛!微笑+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++错误:

",line1,inf(t)TypeError:f()takesexactly2arguments(1given)【错误分析】不要误以为元祖里有两个参数,将元祖传进去就可以了,实际上元祖作为一个整体只是一个参数,实际需要两个参数,所以报错。必需再传一个参数方可.复制代码代码如下:>>>f(t,'var2')('a','b')var2更常用的用法:在前面加*,代表引用元祖复制代码代码如下:>>>f(*t)'a','b'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++错误:复制代码代码如下:>>>deffunc(y=2,x):returnx+ySyntaxError:non-defaultargumentfollowsdefaultargument【错误分析】在C++,Python中默认参数从左往右防止,而不是相反。这可能跟参数进栈顺序有关。复制代码代码如下:>>>deffunc(x,y=2):returnx+y>>>func(1)3+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++错误:

",line1,inD1['z']KeyError:'z'【错误分析】这是Python中字典键错误的提示,如果想让程序继续运行,可以用字典中的get方法,如果键存在,则获取该键对应的值,不存在的,返回None,也可打印提示信息.复制代码代码如下:>>>D1.get('z','KeyNotExist!')'KeyNotExist!'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++错误:

",line1,insqrt(4)TypeError:'int'objectisnotcallable【错误分析】exec语句最有用的地方在于动态地创建代码字符串,但里面存在的潜在的风险,它会执行其他地方的字符串,在CGI中更是如此!比如例子中的sqrt=1,从而改变了当前的命名空间,从math模块中导入的sqrt不再和函数名绑定而是成为了一个整数。要避免这种情况,可以通过增加in,其中就是起到放置代码字符串命名空间的字典。复制代码代码如下:>>>frommathimportsqrt>>>scope={}>>>exec"sqrt=1"inscope>>>sqrt(4)2.0+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++错误:复制代码代码如下:>>>seq=[1,2,3,4]>>>sep='+'>>>sep.join(seq)Traceback(mostrecentcalllast):File"",line1,insep.join(seq)TypeError:sequenceitem0:expectedstring,intfound【错误分析】join是split的逆方法,是非常重要的字符串方法,但不能用来连接整数型列表,所以需要改成:

错误:

【错误分析】因所用的Python版本2.7,比较高的版本,raise触发的异常,只能是自定义类异常,而不能是字符串。所以会报错,字符串改为自定义类,就可以了。

执行上面一段代码,错误如下:

【错误分析】Python中调用类的方法,必须与实例绑定,或者调用自身.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

",line1,inprintf(args)TypeError:f()takesexactly3arguments(1given)【错误分析】args是一个元祖,如果是f(args),那么元祖是作为一个整体作为一个参数*args,才是将元祖中的每个元素作为参数

【错误分析】错误原因**匹配并收集在字典中所有包含位置的参数,但传递进去的却是个元祖。所以修改传递参数如下:

【错误分析】在函数hider()内使用了内置变量open,但根据Python作用域规则LEGB的优先级:先是查找本地变量==》模块内的其他函数==》全局变量==》内置变量,查到了即停止查找。所以open在这里只是个字符串,不能作为打开文件来使用,所以报错,更改变量名即可。可以导入__builtin__模块看到所有内置变量:异常错误、和内置方法

",line1,inhash((1,2,(2,[3,4])))TypeError:unhashabletype:'list'【错误分析】字典中的键必须是不可变对象,如(整数,浮点数,字符串,元祖).可用hash()判断某个对象是否可哈希

【错误分析】列表属于可变对象,其append(),sort(),reverse()会在原处修改对象,不会有返回值,或者说返回值为空,所以要实现反转并排序,不能并行操作,要分开来写

【错误分析】class是Python保留字,Python保留字不能做变量名,可以用Class,或klass同样,保留字不能作为模块名来导入,比如说,有个and.py,但不能将其作为模块导入

【错误分析】错误原因,else,finally执行位置;正确的程序应该如下:

报错如下:

【错误分析】双下划线的类属性__secretCount不可访问,所以会报无此属性的错误.

解决办法如下:

【错误分析】Python不允许使用未赋值变量+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

【错误分析】空元祖和空列表,没有索引为0的项+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

【错误分析】一般出在代码缩进的问题+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

【错误分析】如果文件里面没有行了会报这种异常

",line2,inAreturnA()RuntimeError:maximumrecursiondepthexceededclassBird:def__init__(self):self.hungry=Truedefeat(self):ifself.hungry:print"Ahaha..."self.hungry=Falseelse:print"No,Thanks!"该类定义鸟的基本功能吃,吃饱了就不再吃输出结果:复制代码代码如下:>>>b=Bird()>>>b.eat()Ahaha...>>>b.eat()No,Thanks!下面一个子类SingBird,复制代码代码如下:classSingBird(Bird):def__init__(self):self.sound='squawk'defsing(self):printself.sound输出结果:复制代码代码如下:>>>s=SingBird()>>>s.sing()squawkSingBird是Bird的子类,但如果调用Bird类的eat()方法时,

",line1,ins.eat()File"D:LearnPythonPerson.py",line42,ineatifself.hungry:AttributeError:SingBirdinstancehasnoattribute'hungry'【错误分析】代码错误很清晰,SingBird中初始化代码被重写,但没有任何初始化hungry的代码

THE END
1.MLGuruSupreme:机器学习菜鸟的福音来啦!这个Python 库属实让我眼前一亮!写机器学习代码再也不用绞尽脑汁啦。它把那些复杂的算法都打包好了,咱们导入就能用,关键是连调参都帮你搞定。不管你是刚入门的小白,还是搞科研的老手,这个库都能帮你省不少事。 1. 安装超简单 pip install mlgurusupreme https://www.jianshu.com/p/bee48bb44a7f
2.pythonAI源码mob649e815a6b81的技术博客我们将通过一个简单的机器学习示例,使用Python的scikit-learn库来创建一个分类模型,该模型用于识别鸢尾花(Iris flower)的类别。 首先,我们需要安装scikit-learn库,可以通过以下命令进行安装: pipinstallscikit-learn 1. 接下来,我们将编写代码加载数据、训练模型并进行预测。 https://blog.51cto.com/u_16175458/12901267
3.深度学习入门篇(二)从理论到实战:LeNet代码实现与MNIST数据集深度学习入门篇(二) 从理论到实战:LeNet代码实现与MNIST数据集训练(PyTorch) 上篇文章讲解了LeNet的具体细节:深度学习入门篇--来瞻仰卷积神经网络的鼻祖LeNet 这次给大家带来卷积神经网络入门级网络LeNet的代码详解,并一步步的实现,并给同学们总结出pytorch的代码【查看原文】http://aigcdaily.cn/news/b24i7solbfipdcz/
4.Lesson6.1ScikitLearn快速入门如果是首次安装 sklearn,可参考上述代码在命令行中进行安装。 官网还指出,可以通过后面的代码查看 sklearn 的安装情况,其中第一行是查看目前安装的 sklearn 版本以及安装位置,第二行代码是查看安装好的第三方库(在当前虚拟环境下),第三行代码则是查看当前已经安装好的 sklearn 版本。 https://blog.csdn.net/weixin_45891612/article/details/128905266
5.使用X++代码调用.NET库Learn 登录 保存 添加到集合 添加到计划 使用英语阅读 第11 单元(共 13 个单元) 已完成100 XP 2 分钟 Visual Studio 中的财务和运营应用包含 X++ 代码,可与以其他 .NET 语言编写的代码顺利交互。 您可以通过执行以下步骤,从财务和运营应用项目创建对 C# 类库或生成程序集的任何类型的 C# 项目的引用: https://docs.microsoft.com/zh-cn/learn/modules/get-started-xpp-finance-operations/9-dotnet
6.机器学习KMeans聚类分析详解腾讯云开发者社区代码语言:javascript 复制 sklearn.cluster.KMeans(n_clusters=8, init='k-means++', n_init=10, max_iter=300, tol=0.0001, precompute_distances='auto', verbose=0, random_state=None, copy_x=True, n_jobs=None, algorithm='auto') 参数与接口详解见文末附录 例: 代码语言:javascript 复制 >>>https://cloud.tencent.com/developer/article/1838408
7.C++Compass::learnoffsets方法代码示例本文整理汇总了C++中Compass::learn_offsets方法的典型用法代码示例。如果您正苦于以下问题:C++ Compass::learn_offsets方法的具体用法?C++ Compass::learn_offsets怎么用?C++ Compass::learn_offsets使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Compass的用法示例。 https://vimsky.com/examples/detail/cpp-ex---Compass-learn_offsets-method.html
8.c++源代码LearnCandC++ProgrammingThe best site for C and C++ programming. Popular, beginner-friendly C and C++ tutorials to help you become an expert!https://cprogramming.com/
9.LearnC++LearnCPlusPlus.org is a free website designed to help you learn how to program Windows C++ apps. Tutorials, resources, videos, books and more for programmers.https://learncplusplus.org/
10.python中kmeans和kmeans++原理及实现python本文主要介绍了python中k-means和k-means++原理及实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 + 目录 前言 k-means算法是无监督的聚类算法,实现起来较为简单,k-means++可以理解为k-means的增强版,在初始化中心点的方式上比k-meanshttps://www.jb51.net/article/247661.htm
11.C源码,VC源码,VC++源码,Java源码,PHP源码,C++源码,C#源码,Python领先的源码共享下载网站,20万源码免费下载,内容涵盖:网站源码,C,VC,VC++,Java,PHP,C++,C#,Python,ASPX,.NET,JSP,VB,Delphi,JavaScript,行业源码http://www.verysource.com/
12.史上最全wow3.35单机代码命令.docx===%.Learn20573坚韧抵抗昏迷的几率提高15%.Learn20574斧专精+,、魅惑、催眠,+%.%.+++10%.Learnun弓专精++%到30%.Learn20557野兽杀手对野兽的伤害+5%+++10%.+10%.Learn20600感知提高侦测潜行能力,++%,免疫流血、毒药、疾病, 史上最全wow3.35单机代码命令 来自淘豆网www.taodocs.com转载请标明出处. 文档信https://www.taodocs.com/p-211757761.html