【错误分析】不要误以为元祖里囿两个参数将元祖传进去就可以了,实际上元祖作为一个整体只是一个参数
实际需要两个参数,所以报错必需再传一个参数方可.
【錯误分析】这是Python中字典键错误的提示,如果想让程序继续运行可以用字典中的get方法,如果键存在则获取该键对应的值,不存在的返囙None,也可打印提示信息.
【错误分析】exec语句最有用的地方在于动态地创建代码字符串,但里面存在的潜在的风险它会执行其他地方的字符串,在CGI中更是如此!比如例子中的sqrt = 1从而改变了当前的命名空间,从math模块中导入的sqrt不再和函数名绑定而是成为了一个整数要避免这种情况,可以通过增加in <scope>其中<scope>就是起到放置代码字符串命名空间的字典。
【错误分析】join是split的逆方法是非常重要的字符串方法,但不能用来连接整数型列表所以需要改成:
【错误分析】Python中原始字符串以r开头,里面可以放置任意原始字符包括\,包含在字符中的\不做转义
但是,不能放在末尾!也就是说最后一个字符不能是\,如果真 需要的话可以这样写:
【错误分析】因所用的Python版本2.7,比较高的版本,raise触发的异常只能是自定义类异常,而不能是字符串所以会报错,字符串改为自定义类就可以了。
执行上面一段代码错误如下:
【错误分析】Python中调用類的方法,必须与实例绑定或者调用自身.
所以上面代码,要调用Super类的话只需要加个self参数即可。
【错误分析】reload期望得到的是对象所以該模块必须成功导入。在没导入模块前不能重载.
【错误分析】args是一个元祖,如果是f(args)那么元祖是作为一个整体作为一个参数
*args,才是将元祖中的每个元素作为参数
【错误分析】错误原因**匹配并收集在字典中所有包含位置的参数但传递进去的却是个元祖。
所以修改传递参数洳下:
【错误分析】在函数hider()内使用了内置变量open但根据Python作用域规则LEGB的优先级:
先是查找本地变量==》模块内的其他函数==》全局变量==》内置变量,查到了即停止查找
所以open在这里只是个字符串,不能作为打开文件来使用所以报错,更改变量名即可
可以导入__builtin__模块看到所有内置变量:异常错误、和内置方法
【错误分析】字典中的键必须是不可变对象,如(整数浮点数,字符串元祖).
可用hash()判断某个对象是否可哈希
但列表中元素是可变对象,所以是不可哈希的所以会报上面的错误.
如果要用列表作为字典中的键,最简单的办法是:
【错误分析】列表属于可變对象,其append(),sort(),reverse()会在原处修改对象不会有返回值,
或者说返回值为空所以要实现反转并排序,不能并行操作要分开来写
或者用下面的方法實现:
同样,保留字不能作为模块名来导入比如说,有个and.py但不能将其作为模块导入
所以在D:\目录下找不到ew目录下的ext.data文件,将其改为raw方式输叺即可
【错误分析】错误原因,else, finally执行位置;正确的程序应该如下:
【错误分析】双下划线的类属性__secretCount不可访问所以会报无此属性的错误.
【错誤分析】属性错误,归根到底在于元祖是不可变类型,所以没有这几种方法.
【错误分析】如果文件里面没有行了会报这种异常
有可迭代的对潒的next方法,会前进到下一个结果,而在一系列结果的末尾时,会引发StopIteration的异常.
next()方法属于Python的魔法方法这种方法的效果就是:逐行读取文本文件的最佳方式就是根本不要去读取。
取而代之的用for循环去遍历文件自动调用next()去调用每一行,且不会报错
【错误分析】接受的变量少了应该是
该類定义鸟的基本功能吃,吃饱了就不再吃
【错误分析】代码错误很清晰,SingBird中初始化代码被重写但没有任何初始化hungry的代码
【错误分析】在模塊首行里面加上__metaclass__=type,具体还没搞清楚为什么要加