python 2和3的区别,python2和python3的区别有哪些-

  python 2和3的区别,python2和python3的区别有哪些?

  Python2和Python3的区别

  1)核心阶层差异

  Python3对Unicode字符的本地支持。

  在Python2中使用ASCII码作为默认的编码方式导致了两种类型的字符串,str和unicode,而Python只有三种。

  Unicode支持的字符串。Python2和Python3的字节和字符对应关系是:

  python2

  python3

  完成

  变化

  功能

  潜艇用热中子反应堆(submarine thermal reactor的缩写)

  字节

  字节

  编码

  救援

  采用双字节对字符进行编码

  潜艇用热中子反应堆(submarine thermal reactor的缩写)

  性格;角色;字母

  译

  显示

  Python3使用绝对路径导入。

  Python2中的旧类和新类是有区别的,Python3统一采用新类。新的类声明需要继承对象,

  多重继承必须应用于新类。

  Python3使用更严格的缩进。在Python2的缩进机制中,1个制表符和8个空格是等价的,所以

  在缩进中,制表符和空格可以在代码中共存。这种等价机制会导致IDE的使用出现一些问题。

  在Python3中,一个制表符只能被另一个制表符替换,所以制表符和空格的共存会导致一个错误:TabError:

  缩进中制表符和空格的使用不一致。

  2)被抛弃阶层的差异

  Print语句被Python3抛弃,统一使用print函数。

  exec语句被python3抛弃,统一使用exec函数。

  Execfile语句被Python3放弃,而exec(open(。/filename’)。推荐read())。

  不等式运算符“”被Python3放弃,统一使用!=

  长整型被Python3抛弃,统一使用int。

  Xrange函数被Python3抛弃,range统一使用。Python3中的range机制也被修改,以提高生成大型数据集的效率。

  在Python3中,这些方法不再返回与dictionary关联的list对象:keys()、values()、items()、zip()、map()、filter(),而是可以被list强制转换:

  mydict=dict()

  mydict={a: 1, b: 2, c: 3}

  mydict.keys() #

  list(mydict.keys()) # [a , c , b]

  迭代器的next()函数被Python3放弃,统一使用next(迭代器)。

  raw_input函数被Python3抛弃,统一使用input函数。

  变量的has_key函数被Python抛弃,统一使用in关键字。

  文件函数被Python3放弃了。open用于处理文件,文件类型可以通过io检查。IOBase

  Python3放弃了apply函数。

  异常StandardError被Python3抛弃,异常被统一使用。

  3)修改阶级差异。

  浮点除法运算符“/”和“//”之间的区别

  /":

  Python2:如果对两个整数进行运算,结果是整数,但是如果两个数字中的一个是浮点数,结果是

  浮点数;

  Python3:对于真除法,运算的结果不再基于参与运算的数的类型。

  //":

  Python2:返回小于除法结果的最大整数;就类型而言,与“/”运算符返回的类型在逻辑上是一致的。

  Python3:结果和Python2一样。

  异常抛出和捕获机制的区别

  python2

  引发IOError,“文件错误”#引发异常

  除了名称错误,err: # catch异常

  python3

  引发IOError(file error) #引发异常

  Except NameError as err: # catch异常

  for循环中变量值的差异

  Python2,for循环将修改同名外部变量的值。

  i=1

  打印(理解: ,[i for i in range(5)])

  print(after:i=,i) # i=4

  Python3,for循环不修改同名外部变量的值。

  i=1

  打印(理解: ,[i for i in range(5)])

  print(after: i=,i) # i=1

  舍入函数返回值差异

  Python2,round函数返回float类型的值

  isinstance(round(15.5),int) #True

  Python3,round函数返回int类型值

  isinstance(round(15.5),float) #True

  比较运算符差异

  Python2中的任意两个对象都可以比较。

  11“测试”# True

  Python3中只能比较相同数据类型的对象。

  11“test”# type error:不可排序的类型:int() str()

  4)第三方工具包的差异

  我们可以通过搜索Python2.7的pip官方下载源pypi,找到Python2.7和Python3.5的第三方工具包数量

  版本对应的第三方工具类别数为28523,Python版为12457。这两个版本都在第三方工具里。

  支持的包的数量差别很大。

  从数据分析应用的角度出发,我们列出了常见的、实用的第三方工具包(如下表所示),并分析了这些工具包在

  支持Python2.7和Python3.5:

  分类

  工具名称

  使用

  数据收集

  scrapy

  网页收藏,爬虫

  数据收集

  组件

  分布式爬虫

  数据收集

  硒

  测试,模拟浏览器

  数据处理

  美丽的声音

  网页解释库,提供lxml支持。

  数据处理

  什么是

  Xml解释库

  数据处理

  读操作

  Excel文件读取

  数据处理

  xlwt

  Excel文件编写

  数据处理

  xlutils

  Excel文件简单格式修改

  数据处理

  pywin32

  读写excel文件和自定义复杂格式

  数据处理

  Python-docx

  Word文件的读写

  数据分析

  数组

  基于矩阵的数学计算库

  数据分析

  熊猫

  基于表格的统计分析库

  数据分析

  科学计算

  科学计算库,支持高阶抽象和复杂模型

  数据分析

  统计模型

  统计建模和计量经济学工具包

  数据分析

  sci kit-学习

  机器学习工具库

  数据分析

  根西姆

  自然语言处理工具库

  数据分析

  街霸

  中文分词工具库

  数据存储

  安装

  Mysql的读写接口库

  数据存储

  mysqlclient

  Mysql的读写接口库

  数据存储

  SQLAlchemy

  数据库的ORM封装

  数据存储

  pymsql

  Sql server读写接口库

  数据存储

  存储

  Redis读写接口

  数据存储

  安装

  Mongodb的读写接口

  数据显示

  绘制精美的图表

  流行的数据可视化库

  数据显示

  海生的

  漂亮的数据可以湖库,基于matplotlib。

  工具帮助

  沙尔代

  字符检查工具

  工具帮助

  ConfigParser

  配置文件读写支持

  工具帮助

  要求

  HTTP库,用于网络访问

  5)工具安装问题

  Windows环境

  Python2无法安装mysqlclient。Python无法安装MySQL-python、flup、functools32、Gooey、Pywin32和webencodings。

  python3环境下的Matplotlib安装错误:无法构建以下必需的包:freetype,png。您需要手动下载并安装源代码包来解决问题。

  Scipy在python3环境下安装时报错,numpy . distutils . system _ info . not found错误,需要手动下载相应的安装包,视numpy而定,熊猫必须严格基于python版本,操作系统,64位与否。运行matplotlib后发现基础包numpy mkl安装失败,需要自己下载。国内没有下载来源。

  Centos环境

  2 Python不能安装mysql-python和mysqlclient包。错误:环境错误:找不到mysql _ config。解决方法是安装mysql-devel包。使用matplotlib报错:没有名为_Tkinter的模块,安装Tkinter,tk-devel,tc-devel解决。

  Pywin32也不能安装在centos环境下。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: