Python日课-3.3-python 2 和 3 的区别
Python 日课 2021-01-21:Python2 和 Python3 的区别。
各位 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 机构的官网:
对了,顺便提一下,我们现在已经非常熟悉的 emoji ,就是输入法中的哪些表情符号,也是 unicode 的一部分哦。例如下面这个:
🐂🍺
- 文章ID:2745
- 原文作者:zrong
- 原文链接:https://blog.zengrong.net/post/python-daily-python23/
- 版权声明:本作品采用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可,非商业转载请注明出处(原文作者,原文链接),商业转载请联系作者获得授权。