从Python 2迁移到Python 3:核心变化与新特性
需积分: 9 6 浏览量
更新于2024-09-14
收藏 668KB PDF 举报
"Moving from Python 2 to Python 3 是一份针对已经熟悉 Python 2 的程序员的指南,旨在帮助他们过渡到 Python 3 开发。文档详细列出了不同版本间对象和习惯用法的变化,提供了从 Python 2 风格转换到 Python 3.1 风格的方法。此外,它还介绍了 Python 3.1 中的一些新特性。如果要将现有程序或模块迁移到 Python 3,推荐使用官方提供的 2to3 工具。对于全面学习 Python 3 语言(涵盖 3.0 和 3.1 版本,以及超出此文档范围的更多内容),可以参考 Mark Summerfield 的《Programming in Python 3》第二版。"
在 Python 2 到 Python 3 的迁移过程中,主要的改变包括:
1. **字符串和字符串格式化**:
- 在 Python 3 中,所有字符串都是 Unicode 字符串,不再需要 `unicode()` 函数。Python 2 中的 `unicode(x)` 在 Python 3 中应改为 `str(x)`。
- Unicode 转义序列也有所变化:Python 2 中的 `u"\u20AC"` 在 Python 3 中直接写作 `"€"`。
- 原始字符串(raw string)的表示方法也略有调整:Python 2 中的 `ur"\w"` 变为 Python 3 中的 `r"\w"`。
2. **字符串的 % 操作符被弃用**:
- Python 3 引入了更灵活的 `str.format()` 方法来替代 `%` 运算符进行字符串格式化。例如:
- Python 2 中的 `"{}{}".format(i, s)` 和 `"{0}{1}".format(i, s)` 相当于 `%d%s` 或 `%s%d`。
- Python 3 中的 `"{}[i]{}[s]".format({'i': i, 's': s})` 替代了 `"%d%d" % (i, s)`。
- 使用字典解包,`"{i}{s}".format(**{'i': i, 's': s})` 可以取代 `"%d%s" % (i, s)`。
这些变化是 Python 3 为了提供更好的Unicode支持和更现代的编程风格所做的改进。Python 2 中的一些习惯用法在 Python 3 中可能不适用,因此需要程序员进行相应的代码调整。2to3 工具可以帮助自动转换大部分代码,但可能无法处理所有情况,所以理解和掌握这些差异至关重要。同时,阅读官方文档和书籍如《Programming in Python 3》是深入学习和掌握 Python 3 的有效途径。
2018-02-02 上传
2017-03-09 上传
2018-07-29 上传
2023-03-29 上传
2021-03-26 上传
153 浏览量
201 浏览量
2018-05-14 上传
2023-05-31 上传
2023-07-23 上传
ijunjay
- 粉丝: 1
- 资源: 14
最新资源
- C语言数组操作:高度检查器编程实践
- 基于Swift开发的嘉定单车LBS iOS应用项目解析
- 钗头凤声乐表演的二度创作分析报告
- 分布式数据库特训营全套教程资料
- JavaScript开发者Robert Bindar的博客平台
- MATLAB投影寻踪代码教程及文件解压缩指南
- HTML5拖放实现的RPSLS游戏教程
- HT://Dig引擎接口,Ampoliros开源模块应用
- 全面探测服务器性能与PHP环境的iprober PHP探针v0.024
- 新版提醒应用v2:基于MongoDB的数据存储
- 《我的世界》东方大陆1.12.2材质包深度体验
- Hypercore Promisifier: JavaScript中的回调转换为Promise包装器
- 探索开源项目Artifice:Slyme脚本与技巧游戏
- Matlab机器人学习代码解析与笔记分享
- 查尔默斯大学计算物理作业HP2解析
- GitHub问题管理新工具:GIRA-crx插件介绍