Python 2 和 Python 3 的区别

Python 2.x 和 Python3.x 的区别

前言

future 模块

Python 3 介绍的 一些 Python 2 不兼容的关键字和特性可以通过在 Python 2 的内置 __future__ 模块导入。如果你计划让你的代码支持 Python 3,建议你使用 __future__ 模块导入。例如,如果我想要 在Python 2 中表现 Python 3 中的整除,我们可以通过如下导入。

from __future__ import division

官方参考文档

Python 2.0 到 3.9 的全部新变化

编码

源码文件编码

在 python 2.x 版本,python 源码文件默认使用 Ascii 编码,所以无法直接显示中文。需要在源码文件头部通过声明 # -*- encoding: utf-8 -*- 来告诉解释器使用 utf-8 编码处理源文件。

而 python 3.x 源码文件默认以 UTF-8 编码方式处理。

字符串编码

早期 Unicode 标准并未发布时,python 的字符串str默认使用ASCII进行编码。后来python2.0提供了一种新的存储文本数据的数据类型:Unicode 对象,添加了对 Unicode 的支持。它可以用来存储和操作 Unicode 数据。所以 python 2 同时有Ascii编码的strUnicode 字符串。

到了 python 3 以后,python删除了Unicode 对象类型,使字符串均由Unicode编码。

标准输入输出

输出

删除了 python 2 的print语句 ,取而代之的是 print()函数。 Python 2.6 与 Python 2.7 部分地支持这种形式的 print 语法。在 Python 2.6 与Python 2.7 里面,以下三种形式是等价的:

print "fish"
print ("fish") # 注意print后面有个空格
print("fish") # print()不能带有任何其它参数

如果 Python 2.x 版本想使用使用 Python 3.x 的 print 函数,可以导入 __future__包,该包禁用 Python2.x 的 print 语句,采用 Python 3.x 的 print 函数

from __future__ import print_function
print
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值