Python 2.x与3.x主要差异包括:1. print变为函数;2. 字符串默认为Unicode,bytes显式表示字节串;3. /返回浮点除,//为整除;4. input()统一为读取字符串;5. 异常捕获用as语法;6. range、map等返回迭代器;7. 标准库模块重命名;8. 移除旧语法。推荐使用Python 3。

Python 2.x 和 Python 3.x 是两个主要版本系列,虽然语法相似,但在设计和实现上有多个关键区别。以下是它们之间最常见且重要的差异:
在 Python 2.x 中,print 是一个语句,不需要括号(尽管加括号有时也能运行):
print "Hello, World!"而在 Python 3.x 中,print 变成了一个函数,必须使用括号:
print("Hello, World!")这种变化让输出操作更一致,也支持更多参数控制。
立即学习“Python免费学习笔记(深入)”;
Python 2 默认使用 ASCII 编码,字符串分为 str(字节串) 和 unicode(Unicode 字符串) 两种类型:
s = 'hello' # 字节串Python 3 中,所有字符串默认就是 Unicode(即 Python 2 中的 unicode 类型),str 表示文本(Unicode),而字节串用 bytes 显式表示:
s = 'hello' # Unicode 文本这减少了编码混乱,尤其是在处理中文或国际化内容时更加清晰。
Python 2 中,两个整数相除会执行“地板除”(向下取整),除非至少有一个浮点数:
3 / 2 # 结果是 1(整除)Python 3 中,/ 始终返回浮点数结果,// 才是整除:
3 / 2 # 结果是 1.5这一改变更符合数学直觉,减少初学者误解。
Python 2 有两个函数:
Python 3 移除了 input() 的旧行为,只保留了相当于 Python 2 中 raw_input() 的功能,并将其命名为 input()。原来的 input() 被移除。
Python 2 支持两种写法:
raise Exception, "message" # 老式语法Python 3 只允许括号形式:
raise Exception("message")同时,捕获异常的语法也统一为:
try:不再支持逗号分隔的写法(except ValueError, e)。
一些内置函数如 range()、map()、filter() 在 Python 3 返回的是迭代器而不是列表:
# Python 3Python 2 中 range() 直接返回列表,xrange() 才是迭代器。Python 3 移除了 xrange(),range() 就是原来的 xrange。
Python 3 对标准库进行了一些结构调整,部分模块被重命名或合并。例如:
这些变化使得命名更一致,但迁移代码时需要注意导入路径。
Python 3 移除了一些过时或容易出错的语法结构:
基本上就这些。虽然 Python 2 曾经广泛使用,但官方已于 2020 年停止支持。现在推荐所有新项目直接使用 Python 3,避免兼容问题和安全隐患。
python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号