Python 2和Python 3是Python编程语言的两个不同的版本。它们之间有许多差异,以下是一些主要的区别:
-
打印语句:
- Python 2:使用
print作为语句,不需要括号。print "Hello, world!" - Python 3:
print是一个函数,需要使用括号。print("Hello, world!")
- Python 2:使用
-
整数除法:
- Python 2:除法(
/)在整数之间会得到整数结果。3 / 2 # 结果是 1 - Python 3:除法(
/)总是得到浮点数结果,整数除法需要使用//。3 / 2 # 结果是 1.5 3 // 2 # 结果是 1
- Python 2:除法(
-
Unicode:
- Python 2:默认字符串类型是字节串,Unicode 字符串需要明确声明。
- Python 3:默认字符串类型是Unicode,字节串需要明确声明。
-
异常语法:
- Python 2:使用逗号分隔异常和变量。
try: # 代码 except Exception, e: # 处理异常 - Python 3:使用
as关键字。try: # 代码 except Exception as e: # 处理异常
- Python 2:使用逗号分隔异常和变量。
-
输入函数:
- Python 2:
raw_input()用于输入字符串,input()用于执行表达式。 - Python 3:
input()用于输入字符串,没有raw_input()。
- Python 2:
-
迭代器和生成器:
- Python 2:
range()返回一个列表,xrange()返回一个迭代器。 - Python 3:
range()返回一个迭代器,没有xrange()。
- Python 2:
-
模块和包:
- Python 2:旧的模块导入方式,如
import module。 - Python 3:新的模块导入方式,如
from module import function。
- Python 2:旧的模块导入方式,如
-
函数参数:
- Python 2:参数默认值是在函数定义时计算的。
- Python 3:参数默认值是在函数调用时计算的。
-
编码问题:
- Python 2:需要手动处理编码问题。
- Python 3:默认使用UTF-8编码。
-
库和函数的变化:
- 许多库和函数在Python 3中被重写或替换,例如
urllib、urllib2和httplib在Python 3中被合并为urllib。
- 许多库和函数在Python 3中被重写或替换,例如
由于这些差异,Python 2和Python 3的代码并不总是兼容的。Python 2已于2020年1月1日停止官方支持,因此推荐使用Python 3进行新项目的开发。
2484

被折叠的 条评论
为什么被折叠?



