python 2.7 与 3.5 是代际 重构 的分支,核心 区别 在于语言设计:print变为函数、str/bytes 严格分离、整数除法默认真除、3.5 新增类型提示与 async/awai t 雏形等现代特性。

Python 2.7 和 3.5 是两个代际差异明显的版本,核心 区别 不是“小升级”,而是语言层面的重构——3.x 不是 2.x 的增强版,而是重新设计的分支。2.7 是 2.x 系列的最终维护版(2020 年已停止官方支持),3.5 则是 3.x 中首个引入关键现代特性的稳定版本。
print 变成函数,不再是语句
这是最直观的变化:Python 2 中 print "hello" 是语句;Python 3 中必须写成 print("hello")。少括号会直接报错,没有兼容余地。
字符串 与字节 严格区分
Python 2 默认用 str 表示 字节 序列,unicode 表示文本,但类型混用常见且容易出错;Python 3 明确分离:str 永远是 Unicode 文本,bytes 永远是字节序列。打开文件时默认使用文本模式(UTF-8),读写二进制需显式加 b 标志(如 open("f.bin", "rb"))。
整数除法行为不同
Python 2 中 5 / 2 结果是 2(取整除);Python 3 中结果是 2.5(真除法)。要得到整除,必须用 //(如 5 // 2 → 2)。这个变化避免了隐式截断导致的逻辑错误。
立即学习“Python 免费学习笔记(深入)”;
语法和 标准库 的实质性更新
Python 3.5 新增了重要特性,比如:
- 类型提示(Type Hints):支持
def greet(name: str) -> str:这类标注,便于 工具 检查和协作理解 - 新增解包语法:支持
*lst在任意位置解包(如[1, *a, 2]) - async/await 关键字雏形 :3.5 是首个原生支持协程语法的版本(虽完整 异步 生态在 3.6+ 成熟)
- 标准库 精简与重命名:如
urllib2拆分为urllib.request和urllib.Error,ConfigParser改为configparser(小写模块名)
基本上就这些。迁移时最常踩坑的是字符串 编码、print 写法、除法逻辑和库导入路径——不是语法多难,而是思维惯性容易忽略底层模型变化。
以上就是