最快网站备案,WordPress强制ssl,wordpress设置成中文字体,怎么理解网站开发Python2与Python3的区别 1) 核心类差异 Python3 对 Unicode 字符的原生支持。 Python2 中使用 ASCII 码作为默认编码方式导致 string 有两种类型 str 和 unicode#xff0c;Python3 只 支持 unicode 的 string。Python2 和 Python3 字节和字符对应关系为#xff1a; python2p…Python2与Python3的区别 1) 核心类差异 Python3 对 Unicode 字符的原生支持。 Python2 中使用 ASCII 码作为默认编码方式导致 string 有两种类型 str 和 unicodePython3 只 支持 unicode 的 string。Python2 和 Python3 字节和字符对应关系为 python2python3表现转换作用strbytes字节encode存储unicodestr字符decode显示Python3 采用的是绝对路径的方式进行 importPython2中存在老式类和新式类的区别Python3统一采用新式类。新式类声明要求继承object 必须用新式类应用多重继承Python3 使用更加严格的缩进。Python2 的缩进机制中1 个 tab 和 8 个 space 是等价的所 以在缩进中可以同时允许 tab 和 space 在代码中共存。这种等价机制会导致部分 IDE 使用存在问题。 Python3 中 1 个 tab 只能找另外一个 tab 替代因此 tab 和 space 共存会导致报错TabError: inconsistent use of tabs and spaces in indentation. 2) 废弃类差异 print 语句被 Python3 废弃统一使用 print 函数exec 语句被 python3 废弃统一使用 exec 函数execfile 语句被 Python3 废弃推荐使用 exec(open(./filename).read())不相等操作符被 Python3 废弃统一使用!long 整数类型被 Python3 废弃统一使用 intxrange 函数被 Python3 废弃统一使用 rangePython3 中 range 的机制也进行修改并提高了大数据集生成效率Python3 中这些方法再不再返回 list 对象dictionary 关联的 keys()、values()、items()zip()map()filter()但是可以通过 list 强行转换 mydict dict()
mydict {a: 1, b: 2, c: 3}
mydict.keys() # built-in method keys of dict object at 0x000000000040B4C8
list(mydict.keys()) # [a, c, b]迭代器 iterator 的 next()函数被 Python3 废弃统一使用 next(iterator)raw_input 函数被 Python3 废弃统一使用 input 函数字典变量的 has_key 函数被 Python 废弃统一使用 in 关键词file 函数被 Python3 废弃统一使用 open 来处理文件可以通过 io.IOBase 检查文件类型apply 函数被 Python3 废弃异常 StandardError 被 Python3 废弃统一使用 Exception 3)修改类差异 浮点数除法操作符“/”和“//”的区别 “ / ” Python2若为两个整形数进行运算结果为整形但若两个数中有一个为浮点数则结果为 浮点数 Python3:为真除法运算结果不再根据参加运算的数的类型。 “//” Python2返回小于除法运算结果的最大整数从类型上讲与/运算符返回类型逻辑一致。 Python3和 Python2 运算结果一样。异常抛出和捕捉机制区别python2 raise IOError, file error # 抛出异常except NameError, err # 捕捉异常 python3 raise IOError(file error) #抛出异常except NameError as err: #捕捉异常 for 循环中变量值区别 Python2for 循环会修改外部相同名称变量的值 i 1
print(comprehension: , [i for i in range(5)])
print(after:i , i) # i 4 Python3for 循环不会修改外部相同名称变量的值 i 1
print(comprehension: , [i for i in range(5)])
print(after: i , i) # i 1round 函数返回值区别 Python2round 函数返回 float 类型值 isinstance(round(15.5),int) #True Python3round 函数返回 int 类型值 isinstance(round(15.5),float) #True比较操作符区别 Python2 中任意两个对象都可以比较 11 test # True Python3 中只有同一数据类型的对象可以比较 11 test # TypeError: unorderable types: int() str() 4)第三方工具包差异 我们在pip官方下载源pypi搜索Python2.7和Python3.5的第三方工具包数可以发现Python2.7 版本对应的第三方工具类目数量是 28523,Python3.5 版本的数量是 12457这两个版本在第三方工具 包支持数量差距相当大。 我们从数据分析的应用角度列举了常见实用的第三方工具包如下表并分析这些工具包在 Python2.7 和 Python3.5 的支持情况 分类工具名用途数据收集scrapy网页采集爬虫数据收集scrapy-redis分布式爬虫数据收集seleniumweb 测试仿真浏览器数据处理beautifulsoup网页解释库提供 lxml 的支持数据处理lxmlxml 解释库数据处理xlrdexcel 文件读取数据处理xlwtexcel 文件写入数据处理xlutilsexcel 文件简单格式修改数据处理pywin32excel 文件的读取写入及复杂格式定制数据处理Python-docxWord 文件的读取写入数据分析numpy基于矩阵的数学计算库数据分析pandas基于表格的统计分析库数据分析scipy科学计算库支持高阶抽象和复杂模型数据分析statsmodels统计建模和计量经济学工具包数据分析scikit-learn机器学习工具库数据分析gensim自然语言处理工具库数据分析jieba中文分词工具库数据存储MySQL-pythonmysql 的读写接口库数据存储mysqlclientmysql 的读写接口库数据存储SQLAlchemy数据库的 ORM 封装数据存储pymsqlsql server 读写接口库数据存储redisredis 的读写接口数据存储PyMongomongodb 的读写接口数据呈现matplotlib流行的数据可视化库数据呈现seaborn美观的数据可是湖库基于 matplotlib工具辅助chardet字符检查工具工具辅助ConfigParser配置文件读写支持工具辅助requestsHTTP 库用于网络访问 5工具安装问题 windows 环境 Python2 无法安装 mysqlclient。Python3 无法安装 MySQL-python、 flup、functools32、Gooey、Pywin32 、webencodings。 matplotlib 在 python3 环境中安装报错The following required packages can not be built:freetype, png。需要手动下载安装源码包安装解决。 scipy 在 Python3 环境中安装报错numpy.distutils.system_info.NotFoundError需要自己手工下载对应的安装包依赖 numpy,pandas 必须严格根据 python 版本、操作系统、64 位与否。运行matplotlib 后发现基础包 numpymkl 安装失败需要自己下载国内暂无下载源 centos 环境下 Python2 无法安装mysql-python和 mysqlclient包报错EnvironmentError: mysql_config not found解决方案是安装 mysql-devel 包解决。使用 matplotlib 报错no module named _tkinter安装 Tkinter、tk-devel、tc-devel 解决。 pywin32 也无法在 centos 环境下安装 转载于:https://www.cnblogs.com/pankypan/p/11072229.html