从Python 2迁移到Python 3:核心变化与新特性
需积分: 9 44 浏览量
更新于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 上传
2021-10-01 上传
2023-05-31 上传
ijunjay
- 粉丝: 1
- 资源: 15
最新资源
- 前端协作项目:发布猜图游戏功能与待修复事项
- Spring框架REST服务开发实践指南
- ALU课设实现基础与高级运算功能
- 深入了解STK:C++音频信号处理综合工具套件
- 华中科技大学电信学院软件无线电实验资料汇总
- CGSN数据解析与集成验证工具集:Python和Shell脚本
- Java实现的远程视频会议系统开发教程
- Change-OEM: 用Java修改Windows OEM信息与Logo
- cmnd:文本到远程API的桥接平台开发
- 解决BIOS刷写错误28:PRR.exe的应用与效果
- 深度学习对抗攻击库:adversarial_robustness_toolbox 1.10.0
- Win7系统CP2102驱动下载与安装指南
- 深入理解Java中的函数式编程技巧
- GY-906 MLX90614ESF传感器模块温度采集应用资料
- Adversarial Robustness Toolbox 1.15.1 工具包安装教程
- GNU Radio的供应商中立SDR开发包:gr-sdr介绍