Python2与Python3核心差异详解
本文详细对比了Python2与Python3在性能、编码格式、打印语句、异常处理及除法运算等方面的核心差异。重点解析了print从语句变为函数、除法符号/与//的行为变化、异常捕获语法更新以及编码默认值等关键特性,帮助开发者理解版本演进并顺利迁移代码。
Python2与Python3核心差异概述
本文通过具体实例深入解析Python2与Python3之间的主要区别,旨在为读者提供清晰的参考指南。
Python2与Python3的核心区别
1. 性能表现 2. 默认编码格式为UTF-8 3. 打印语句重构为打印函数 4. 移除不等于运算符<>,统一使用!= 5. 引入with as上下文管理语法 6. 废弃file类 7. super()函数支持无参调用 8. 取消long长整型类型 9. 异常处理中逗号改为as关键字 10. raw_input函数更名为input 11. xrange()函数被range()取代 12. 八进制字面量前缀由0改为0o 13. 除法运算符/执行真除法,//执行整除 14. 禁止不同类型间的直接比较 15. 新增bytes字节类型 16. 引入抽象基类(ABC)机制
性能与编码格式差异
1. Python3.x在早期版本中性能略低于Python2.x,但随着持续优化,其执行效率正在逐步缩小差距并实现追赶。
2. Python3.x默认源代码文件采用UTF-8编码,这支持了更广泛的字符命名和国际化需求。
Python3.x环境示例
Python3.x环境示例
>>> 中国 = 'china'
>>> print(中国)
'china'
>>> str = "我爱北京天安门"
>>> str
'我爱北京天安门'
Python2.x环境示例
Python2.x环境示例
>>> str = "我爱北京天安门"
>>> str
'\xe6\x88\x91\xe7\x88\xb1\xe5\x8c\x97\xe4\xba\xac\xe5\xa4\xa9\xe5\xae\x89\xe9\x97\xa8'
编码声明要求
因此,在使用Python2.x时,必须在文件头部显式声明编码格式。
#-*-coding:utf-8-*-
str = "我爱北京天安门"
print(str)
打印功能从语句到函数的演变
3. 打印功能变更
原有的print语句已移除,取而代之的是print()函数。
在Python2.x中,以下两种写法在功能上是等价的。
print "fish"
print ("fish")#注意print后面有个空格
在Python3.x中,仅支持函数式打印。
print("fish")
除法运算符号行为对比
4. 除法运算规则
Python的除法机制相较于其他编程语言更为复杂,包含//和/两种运算符。首先介绍/除法:与其他多数语言不同,在Python2.x中,/仅计算整数部分,自动忽略小数部分。若参与运算的是浮点数,则结果也为浮点数。以下是Python2.x中/的行为表现。
>>> 1/2
0
>>> 1.0/2.0
0.5
在Python3.x中,/运算符的行为已改变。
>>> 1/2
0.5
异常处理语法更新
5. 异常处理机制
Python3.x对异常处理进行了轻微调整,在Python3中,我们使用as作为捕获异常的关键词。
#3.x
try:
...
except exc as var:
....
#2.x
try:
...
except exc, var:
...
如果您对Python其他相关内容感兴趣,可查阅本站专题:《Python函数使用技巧总结》、《Python面向对象程序设计入门与进阶教程》、《Python数据结构与算法教程》、《Python字符串操作技巧汇总》、《Python编码操作技巧总结》及《Python入门与进阶经典教程》。
希望本文所述的对比分析能对您的Python编程实践有所帮助。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













