python与python3的区别,python3和2有什么区别
1)核心类差异python2python3
1.Python3对Unicode字符的本地支持。Python2中使用ASCII码作为默认的编码方法导致了两种类型的字符串,str和unicode。Python3只支持unicode字符串。Python2和Python3的字节和字符对应关系是:
2.Python3使用绝对路径导入。Python2中相对路径的导入会使标准库的导入变得困难(假设同一个目录下有file.py,比如
如何同时导入这个文件和标准库文件)。这将在Python3中修改。如果您仍然需要导入同一目录中的文件,您必须
必须使用绝对路径,否则只能使用相关导入方法导入。
3.Python 2 3中的旧类和新类是有区别的。Python2 3统一采用了新的类。新类声明需要继承对象,并且新类必须应用多重继承。
4.Python3使用更严格的缩进。在Python2的缩进机制中,1个制表符和8个空格是等价的,所以在缩进中,可以允许制表符和空格在代码中共存。这种等价机制会导致IDE的使用出现一些问题。
在Python3中,一个制表符只能被另一个制表符替换,所以制表符和空格的共存会导致一个错误:TabError:
缩进中制表符和空格的使用不一致。
2)弃课差异1。print语句被Python3抛弃,print函数被统一使用2。exec语句被python3放弃。execfile语句被Python3放弃,而exec (open(。/filename’)。read ()) 4。不等运算符“”被Python3抛弃,统一使用!=5.长整型被Python3抛弃,统一使用int6。xrange函数被Python3抛弃,range的统一使用也进行了修改和完善。
提高大型数据集的生成效率。7.在Python 3中,这些方法不再返回列表对象:与dictionary关联的key()、values()、items()、zip()。
Map(),filter(),但是可以通过list: 1强制转换。mydict={a:1, b:2, c:3}
2.my dict . keys()#0x 00000000040 b4c 8处的dict对象的内置方法键
3.list(mydict.keys()) #[a , c , b]
8.迭代器的next()函数被Python3抛弃,统一使用next(迭代器)9。Raw _ input函数被Python3抛弃,统一使用输入函数10。字典变量的has_key函数被Python抛弃,在关键字11中被统一使用11。Python3放弃了文件函数。使用统一打开处理文件,可以通过io检查文件类型。IOBase 12。Python3放弃了apply函数。异常StandardError被Python3抛弃,异常被统一使用。3)修改阶级差异。1.浮点除法运算符“/”和“//”的区别:
Python2:如果对两个整数进行运算,结果是整数,但是如果两个数字中的一个是浮点数,结果是
浮点数;
Python3:对于真除法,运算的结果不再基于参与运算的数的类型。
"//":
Python2:返回小于除法结果的最大整数;就类型而言,与“/”运算符返回的类型在逻辑上是一致的。
Python3:结果和Python2一样。
2.异常抛出和捕获机制不同于Python2
1.引发IOError, file error #抛出异常2。除了NameError,err: # catch异常Python3
1.引发IOError(file error) #抛出异常2。except NameError as err: # catch异常
3.for循环中变量值的差异
Python2,for循环将修改同名外部变量的值。
1.I=1 2。print(综合:,[I for I in range (5)]) 3。print (after: I=,I) # I=4Python3,for循环不会修改同名外部变量的值。
1.i=1 2。print(理解: ,[i for i in range(5)]) 3。print (after: i=,i ) #i=1
4.round函数的返回值与Python2不同,round函数返回一个float类型的值。
1.isinstance(round(15.5),int) #True
Python3,round函数返回int类型值
1.isinstance(round(15.5),float) #True
5.比较运算符差异Python2中的任何两个对象都可以进行比较
1.11“测试”#True
Python3中只有相同数据类型的对象才能比较1.11 test # type error:unordered types:int()str()
4)第三方工具包的差异。我们可以通过搜索pip的官方下载源pypi,找到Python2.7和Python3.5的第三方工具包数量。Python2.7
版本对应的第三方工具类别数为28523,Python版为12457。这两个版本都在第三方工具里。
支持的包的数量差别很大。
从数据分析应用的角度出发,我们列出了常见的、实用的第三方工具包(如下表所示),并分析了这些工具包在
支持Python2.7和Python3.5:
分类工具名称用法
收集数据剪贴簿网页收集,爬虫
Scrapy-redis分布式数据采集爬虫
收集数据,selenium web测试,模拟浏览器。
处理数据beautifulsoup网页解释库,提供lxml支持
数据处理lxml xml解释库
处理数据xlrd excel文件读取
处理数据xlwt excel文件的编写
数据xlutils excel文件的简单格式修改
pywin32 excel文件的数据处理、读写和复杂格式定制
处理数据Python-docx Word文件的读写。
基于数据矩阵的数学计算库分析
数据分析基于表格的熊猫统计分析库
分析数据scipy科学计算库,支持高阶抽象复杂模型。
用于分析数据的统计建模和计量经济学工具包模型
data scikit-learn机器学习工具库分析
用于分析数据的Gensim自然语言处理工具库
数据分析街霸中文分词工具库
存储数据的读写接口库
用于存储数据的读写接口库
数据存储SQLAlchemy数据库的ORM封装
内存pymssql sql server读写接口库
存储数据的读写接口
用于存储数据的读写接口
介绍了流行的matplotlib数据可视化库。
seaborn的漂亮数据可以是一个湖泊库,基于matplotlib。
基于web的辅助工具jupyter python IDE,常用于数据分析。
辅助字符检测工具
工具协助ConfigParser配置文件读写支持。
辅助工具请求HTTP库,用于网络访问
5)工具安装问题windows环境
Python2无法安装mysqlclient。3 Python无法安装MySQL-python,flup,functools32,
Gooey、Pywin32、webencodings .
python3环境中的Matplotlib安装错误:下列必需的包不能
建成:自由型,巴布亚新几内亚.您需要手动下载并安装源代码包来解决问题。
Python3环境下的Scipy安装报错,numpy . dist utils . system _ info . not found error,需要自己动手。
下载相应的安装包,视numpy而定,熊猫必须严格基于python版本,操作系统,64位与否。奔跑
matplotlib之后发现基础包numpy mkl安装失败,需要自己下载。国内没有下载来源。
Centos环境
2 Python不能安装mysql-python和mysqlclient包。错误:环境错误:MySQL _ ConfigNot
找到了,解决方法是安装mysql-devel包。使用matplotlib报错:没有名为_tkinter的模块,
安装Tkinter,tk-devel,tc-devel求解。
Pywin32也不能安装在centos环境下。
python3
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。