Python 2 和 Python 3 是 Python 编程语言的两个主要版本,它们之间存在一些关键的区别。以下是它们之间的一些主要差异:
print 函数:
Python 2 中,`print` 是一个语句,不需要括号。
Python 3 中,`print` 是一个函数,必须使用括号。
整数除法:
Python 2 中,整数除法会丢弃小数部分,返回整数。
Python 3 中,整数除法返回浮点数结果。
Unicode 字符串:
Python 2 中,字符串默认是 ASCII 编码,有两种类型:`str`(8 位 ASCII 字符)和 `unicode`(宽字符)。
Python 3 中,字符串默认是 Unicode,`str` 类型用于 Unicode 字符串,`bytes` 类型用于字节序列。
异常处理:
Python 2 中,异常处理使用 `except Exception, e:` 语法。
Python 3 中,异常处理使用 `except Exception as e:` 语法。
迭代器:
Python 2 中,`range` 返回列表,`xrange` 返回迭代器。
Python 3 中,`range` 返回迭代器,与 Python 2 的 `xrange` 功能相同,而 `xrange` 被废弃。
模块导入:
Python 3 改进了模块导入机制,使用绝对路径导入模块,解决了 Python 2 中相对路径导入的问题。
类定义:
Python 2 中,存在老式类(不显式继承自 `object`)和新式类(显式继承自 `object`)的区别。
Python 3 中,所有类默认都是新式类,必须显式继承自 `object`。
编码声明:
Python 2 中,如果代码中包含非英文字符,需要在文件开头声明编码,如 ` -*- coding: utf-8 -*-`。
Python 3 中,默认字符串就是 Unicode,不需要显式声明编码。
Python 3 是 Python 2 的升级版,提供了更好的性能、更简洁的语法和更丰富的功能。随着 Python 2 的逐渐淘汰,建议使用 Python 3 进行新项目的开发。