• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

对python3.x的详细介绍

python 搞代码 4年前 (2022-01-09) 28次浏览 已收录 0个评论

机器学习实战这本书是在python2.x的环境下写的,而python3.x中好多函数和2.x中的名称或使用方法都不一样了,因此对原书中的内容需要校正,下面简单的记录一下学习过程中fix的部分

1、print 函数后面需要加括号(程序清单2-4开始出现print函数)

2、raw_input改为input函数,在3.x中python使用input替代了raw_input函数(程序清单2-5)

3、reload(KNN)->import importlib

importlib.reload(KNN)

4、程序清单3-6中

在python2.7中,找到key所对应的第一个元素为:firstStr = myTree.keys()[0],这在python3.4中运行会报错:‘dict_keys‘ object does not support indexing,这是因为python3改变了dict.keys,返回的是dict_keys对象,支持iterable 但不支持indexable,我们可以将其明确的转化成list,则此项功能在python3中应这样实现:

firstSides = list(myTree.keys()) firstStr = firstSides[0]#找到输入的第一个元素

5、程序清单3-9

pickle对数据进行持久化的时候是采用二进制的方式进行存储和读取的,所以写入文件的时候将

fw=open(filename,'w')—->fw=open(filename,'wb')

将文件以二进制的形式打开,方便pickle的写入

从文件中读取数据的时候也要用二进制的方式读取做以下修改

fr=open(filename)—->fr=open(filename,'rb')

6、程序清单4-5中

wordList=textParse(open('ch04/email/ham/%d.txt' % i).read())

这一句本文来源gaodaimacom搞#^代%!码&网*在运行的时候老是报编码错误,结果是读取的文件中有乱码,删除乱码后问题解决

错误代码如下:

UnicodeDecodeError: 'gbk' codec can't decode byte 0xae in position 199: illegal multibyte sequence

trainingSet=range(50);

del(trainingSet[randIndex])

由于range不能返回List,不支持del操作,所以运行时出现以下错误:

TypeError: 'range' object doesn't support item deletion

可以将代码修改为:

trainingSet = list(range(50));

to be continued……

以上就是对python3.x的详细介绍的详细内容,更多请关注搞代码gaodaima其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:对python3.x的详细介绍

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址