Python日课-3.3-python 2 和 3 的区别

Python 日课 2021-01-21:Python2 和 Python3 的区别。

曾老师的 Python 课 第一课的所有内容已经全部发布,包括课程 PPT、课程视频都可以免费获取,可以使用微信扫描下面的二维码进群获取。

请进群索取课程 PPT 以及视频播放地址

这套课程有两条教学线:

  1. 现场教学,约两周一次,每次一小时,主要为实际案例的讲解。
  2. 微信群教学,每日一次,由易到难讲解 Python 知识点,Python 相关的小故事,业界八卦,IT 行业最新信息。

各位 Python 同学大家晚上好啊。本周的内容有点难哦,今天不讲新课,聊聊 Python 小知识: Python2 和 Python3 的区别。

要强调的是, 不要学习 Python2!不要学习 Python2!不要学习 Python2!

重要的事情说三遍。

Python2 已经在 2020年 1 月 1 日停止维护。2020 年 4 月 20 日发布的 Python 2.7.18 是 Python2 的最后一个版本。

官方说明在此:

https://www.python.org/dev/peps/pep-0373/

那么,Python2 和 Python3 有哪些区别呢?

首先,最常用的 print 在 python2 中是一条语句,在 Python3 中则是函数:

1# python2:
2print "hello world"
3
4# python3:
5print("hello world")

其次,整数相除的结果不同。

在 Python2 中,整数相除的结果是整数: 3 / 2 = 1

在 Python3 中,相同除法的结果是浮点数: 3 / 2 = 1.5

第三,Unicode 支持不同。

Python3 的源码中原生支持 Unicode 编码,而Python2 必须在源文件中指明 coding 作为编码。

我们在 Python日课-2.3-要不要coding声明 中讲过这一点。

当然,Python2 与 3 的区别远不止上面这三条,例如还有异常处理的不同,range 用法不同,八进制字面量区别,不等运算符,repr 表达式,内部模块改名等等区别。

但由于我们不用再学习这些区别,曾老师这里就不一一叙述了。

我在 2015 年刚开始学习 Python 的时候,写过一篇文章:Python 入门建议

用这篇文章中的一段话来作为今天的结尾:

Python2 还是 Python3 ?

毫无疑问,Python2 是辉煌,Python3 是未来。不要相信网上那些大牛吐槽 Python3 速度慢、兼容性差、库少等等言论了,仔细看看那些言论的发表时间。现在都特么已经2015了好么。

如果某个库到现在还没有兼容 Python3,那么放弃它就是了,因为它的作者已经抛弃了它。

使用 Python3 ,你不会再碰到恶心的 i18n 问题,也不会再面对那些奇怪的2包名了。

选 Python3 吧,因为你属于未来。

2015-07-03

问答

学习群中的 给你一颗小土豆 同学的提问:

虽然第三点还有点看不懂

曾老师的回答:

Unicode 就是「万国码」

支持使用一种编码方式,实现世界上所有的语言。

在Unicode 出现之前,各种不同的语言会有不同的编码。

比如中文的 GB2312/GBK,中国台湾的 BIG5,英文的 Latin1。

在读取文本的时候,如果选错了编码,就会出现「乱码」。

如早期 Win98 时代,在简体中文系统中打开繁体中文的文本,就会显示乱码,因为不同编码之间无法转换。

Unicode 就解决了这个问题。用同一种编码,编码全世界所有的文字。

你可以在一个文本文件中同时显示中文、英文、日文、俄文、西欧语系等等。

更详细的内容,你可以阅读阮一峰的这篇文章:

http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html

这篇文章深入浅出,写得很好。对于非计算机专业的同学来说,很好懂。

Unicode 机构的官网:

https://home.unicode.org/

对了,顺便提一下,我们现在已经非常熟悉的 emoji ,就是输入法中的哪些表情符号,也是 unicode 的一部分哦。例如下面这个:

🐂🍺

全文完