中企动力 > 头条 > python2和3学哪个

网站性能检测评分

注:本网站页面html检测工具扫描网站中存在的基本问题,仅供参考。

python2和3学哪个

该学 Python 2 还是 Python 3 企业视频课程

img

寄容

关注

题图:from Instagram

在 Python 3 出现之前,Python 在我眼里一直是一位稳重扎实的大叔,资历深厚,语法简单,功能强大,兼顾面向对象和函数式编程,库包丰富程度让其他语言转过来的程序员瞠目结舌并喟叹:人生苦短,要用 Python 啊……这种情况一直持续到 Python 3 的出现。

一个语言的版本升级是极为普通的事情,不升级才不正常,但 Python 3 是个例外,因为 Python 3 放弃了向下兼容,也就是说,你在 Python 2 系列版本中写的代码,一直运行的好好的,放到 3 的环境里,有 99% 的可能性不能正常运行。最简单的,你在 Python 2 中打印语句print "Hello World",放到 Python 3 里,系统会告诉你「SyntaxError: Missing parentheses in call to 'print'」。刺激不刺激?

Python 的开发者为什么要这么做呢,或者说为什么会出现 Python 3?在很长一段时间内,没人解释这事,Python 的创造者们认为,这不是很显然的嘛。这就像一个具备超高幽默感的人听到一个冷笑话乐得前仰后合哈哈大笑,另一个人 —— 比如普通开发者 —— 把一颗冰凉的花生米放嘴里边嚼边问,哥们,你特么到底笑啥呢?

为什么会有 Python 3 的存在?Brett Cannon —— Python 的核心开发者 —— 在一次问答活动中终于做了一个合理的解释。在此之前他一直神奇的认为大家都清楚为什么 Python 3 会出现。他说:

回想起来我真是太傻了,竟然认为大部分人 —— 不管是刚接触 Python 或者已经有一段时间 —— 要么应该知道,要么有好奇心去获取一个解释或答案。但是并没有。所以我会解释一下为什么 Python 3 会存在。为什么要破坏兼容性,改变 unicode/str/bytes,使得老代码移植到 Python 3 非常困难。

最根本的原因是,在 Python 2 中文本和二进制数据是一个烂摊子。比如 'abcd' 这个表达式,在 Python 3 中,语义非常明确,就是包含四个字母的字符串,但是在 Python 2 里,可以是四个字母的字符串,也可以代表 97、98、99、100 的数组。你可以使用print ord('a')获取到这个字母的 ASCII。总之,在 Python 2 中,对于 str 代表的含义有两种,这改变了语言的唯一性。而在 Python 3 中答案是唯一的。

「Python之禅」里讲过,「找到一种或唯一的一种解决方案去解决问题」。文字既能代表文本数据又能代表二进制数据这很麻烦。一旦对象脱离我们的控制,就会让人变得恐慌。有人说我们可以用 Unicode,但实际中人们并不会那么做,有事还会引发不必要的麻烦。比如在 Python 2 中,中文显示是这样的:

>>> geektime = “极客时间”

>>>geektime

'\xe6\x9e\x81\xe5\xae\xa2\xe6\x97\xb6\xe9\x9\xb4'

Python 3 就简明很多:

'极客时间'

简化语言,移除 str 的二义性能够减少代码的出错率。避免 bug 是一件很重要的事情,但却经常被人遗忘。Python 之禅中的另一句话「清晰胜于晦涩」也表达了这个意思,歧义和隐性知识使得代码不容易沟通,并容易形成 bug。

正如 Brett Cannon 所言,人们有时会忘记 Python 有多久的历史了

1989年的冬天,Guido 为了度过一个有意义的圣诞节开始编写 Python 语言的编译器和解释器。1991年2月,第一个 Python 版本诞生,编译器是 C 语言实现的。这意味着 Python 的出现早于 1991年10月发布的第一版 Unicode 标准。后面出现的语言,比如 Java,Ruby 等都选择在支持 Unicode 的标准上实现自己的 str 类型,这就让 Python 3 变得很尴尬。2004年 Python 3 的方案开始酝酿,开发者们意识到,支持 Unicode 和来自任何语言的的文本是非常重要的。

Python 是一门面向世界的语言,而不只是那些支持 ASCII 码覆盖的罗马数字的语言。这是 Python 3 在处理文本时选择使用 Unicode 的原因。

Python 3 的开发过程大致是这样的:

在 2004 年我们开始开始设计 Python 3。我们清楚 Python 的受欢迎程度在不断上升,我们也希望能够延续这种势头。但这也同时意味着如果我们想及时修正所有的设计缺陷来保证它的受欢迎度,最好趁现在而不是以后。我们设想 Python 3 相较于 Python 2 会持续更长一段时间,而 Python 2.7 仅仅是用来维护以前遗留的项目,不会用于新项目中,那用 Python 3 写出的代码一定会多于用 Python 2 的。所以我们决定来承受由 Python 2 向 3 转型之痛。并且在这种设想下开发了 Python 3。

以后我们再也不会做这种打破向后兼容性的事情。

但是事情显然没有开发者想象的那么简单,由于缺乏向下的兼容性,而且 Python 2 的代码历史悠久,库包丰富,并且大部分程序都是生产环境的应用,迁移成本太高,看不到显而易见的好处。另外,由于 Python 2 是如此好用以至于开发者们掌握了熟练的技巧避免 str 带来的陷阱。发布完 Python 3 之后,Python 的核心开发者们认为社区会最终摒弃上一个版本,痛痛快快的转向新世界。但事与愿违,两个版本并存的情况持续了近十年之久。Python 的开发者们又花费了更多的时间设计了一个 Python 2/3 的兼容子集来实现这种过渡。

关于 Python 2 和 3的主要区别,可以参考这篇文章:

http://runoob/python/python-2x-3x.html

那么该学 Python 2 还是 Python 3 呢?如果是五年前我推荐学习 Python 2,两年前我推荐都要学都要掌握,事实上在 Mac 环境里用 homebrew 安装和使用两个版本的环境是非常方便的。时至今日,大量的库已经开始普遍支持 Python 3 了,而且 Python 3 的特性已经远远不是解决 str 问题了,所以现在我会推荐你直接学习 Python 3。

看看 Instagram 的案例,在相当长的一段时间,Instagram 都跑在 Python 2.7 + Django 1.3 的组合之上。在经过一系列的讨论后,他们最终做出一个重大的决定:升级到 Python 3。

Python 3 有什么优势呢?新特性,比如类型注解 Type Annotations;提供了更好的性能;并且社区的支持重心已经完全迁移到 Python 3,有什么理由再去使用 Python 2 呢?

关于 Instagram 和 Python 的故事,大家可以下载「极客时间」,找到热点专题里的「编程语言」,一篇长文,有详细的描述。

Python 相关文章:

人生苦短,我用 Python

Python 之禅

Python 的进击

点击阅读原文,下载极客时间 iOS 版。

学习Python,你选哪个版本 2 vs 3 ? 互联网视频课程

img

莫青文

关注

Python一个很大的缺陷是版本2 和版本3 不兼容,初学者也经常纠结是学2还是学3。2017年Semaphore 社区调查了 Python 在 Semaphore 的托管 CI 服务中构建应用程序的使用情况。

1、Python2和Python3 事情情况

2016年调查显示有 70% 以上的用户仍在使用 Python 2.7,Python 3 的使用率较低。2017年,Python 3 的使用出现了上涨,涨幅约 8.2%。如下图所示:

2、升级新版本愿望

2016年,Python 3.5 的使用率达到 60%,Python 3.4 的使用率占 30%。2017年,3.5 版和 3.4 版的使用率分别只占 34% 和 20%,有 35% 的用户已经开始使用 Python 3.6。

可见,使用 Python 3 的群体更愿意进行版本更新。

3、Python 2.7 和 Python 3 各版本的使用率对比

从图中,可以看到 Python 3 版的用户群体正在迅速扩展。

现在,新入行的学习者,如果不是项目限制必须学 Python 2.7,那还是直接学 Python3 吧。

毕竟 Guido van Rossum 曾于 2014 年宣布 Python 2.7 支持时间延长到 2020 年。

Python Web 开发框架 Django 释出了 2.0 版本。主要变化包括:停止支持 Python 2 系列。

大名鼎鼎的NumPy也宣布,从2019年1月1日开始,任何新的功能版本都只支持Python3。

企业里Python2和3哪个用的多?为什么? 企业视频课程

img

Jin

关注

python2和python3的差异

如果你是一个初学者,或许你曾经触摸过其他的编程言语,你可能不知道,在开端学习python的时分都会遇到一个比较让人很头疼的问题:版别问题!!是学习python2 仍是学习 python3 ?这是十分让人纠结的!

查找一下便会发现python3 和 python2 是不兼容的,并且差异比较大,究竟学习哪个版别呢?

所以先学 Python2 仍是 Python3 都不是问题,或许说都是问题。可是现在总算不必纠结这个问题了!哈哈,好开心

因为一个开发者已经发布了一个网站来倒计时Python 2.7的“退休”。

能够看出,Python 2.7有望在两年后退休。

开发商表明,因为官方的日期没有发布,估计Python 2.7会在2020年4月12日退休,这是时刻的时分,pycon将举办。

Python 2,感谢您多年的忠诚服务。

巨蟒3,现在你在舞台上。

Python 2.7是2 x系列的最终一个版别。它的继任者Python 3在2008年12月发布,但它与2。X系列不兼容。3的3的特征和语法被移植回2.6和2.7。2.7的支撑时刻至少为10年,并将在2020之前供给过错批改。

怎么转换为Python 3?

如果您的主代码仍然根据Python 2,这是完全能够了解的。最流行的包PyPI上现在能够运转在Python 2和Python 3,添加更多的日常。为了简化转换,官方搬迁指南供给了在Python 3中运转Python 2代码的主张。

所以我主张:

1. 如果是你在企业中,需求用到python而学习python的话,那就要看企业的使用python的版别进行学习;

2. 如果想要更多的老练解决方案,最少的bug,最安稳的使用那就用python2 ;

3. 如果你是在读大学的学生,那我主张你学习python3,比及结业的时分或许python已经成为了干流。

另外,选2仍是3一般都是编程小白才会考虑。考虑的起点是作为一个初学者,有时候在学习的过程中会出现一些问题或者会参考一些项目去学习,这个时候会想一下,2是干流或者是3。已然刚学何不找个干流的。其实不管是2仍是3,只需照这一个学,就可以了。中心的差异在学习的时候也能更好的去加深一些形象

该学 Python 2 还是 Python 3 公司视频课程

img

皮惜芹

关注

题图:from Instagram

在 Python 3 出现之前,Python 在我眼里一直是一位稳重扎实的大叔,资历深厚,语法简单,功能强大,兼顾面向对象和函数式编程,库包丰富程度让其他语言转过来的程序员瞠目结舌并喟叹:人生苦短,要用 Python 啊……这种情况一直持续到 Python 3 的出现。

一个语言的版本升级是极为普通的事情,不升级才不正常,但 Python 3 是个例外,因为 Python 3 放弃了向下兼容,也就是说,你在 Python 2 系列版本中写的代码,一直运行的好好的,放到 3 的环境里,有 99% 的可能性不能正常运行。最简单的,你在 Python 2 中打印语句print "Hello World",放到 Python 3 里,系统会告诉你「SyntaxError: Missing parentheses in call to 'print'」。刺激不刺激?

Python 的开发者为什么要这么做呢,或者说为什么会出现 Python 3?在很长一段时间内,没人解释这事,Python 的创造者们认为,这不是很显然的嘛。这就像一个具备超高幽默感的人听到一个冷笑话乐得前仰后合哈哈大笑,另一个人 —— 比如普通开发者 —— 把一颗冰凉的花生米放嘴里边嚼边问,哥们,你特么到底笑啥呢?

为什么会有 Python 3 的存在?Brett Cannon —— Python 的核心开发者 —— 在一次问答活动中终于做了一个合理的解释。在此之前他一直神奇的认为大家都清楚为什么 Python 3 会出现。他说:

回想起来我真是太傻了,竟然认为大部分人 —— 不管是刚接触 Python 或者已经有一段时间 —— 要么应该知道,要么有好奇心去获取一个解释或答案。但是并没有。所以我会解释一下为什么 Python 3 会存在。为什么要破坏兼容性,改变 unicode/str/bytes,使得老代码移植到 Python 3 非常困难。

最根本的原因是,在 Python 2 中文本和二进制数据是一个烂摊子。比如 'abcd' 这个表达式,在 Python 3 中,语义非常明确,就是包含四个字母的字符串,但是在 Python 2 里,可以是四个字母的字符串,也可以代表 97、98、99、100 的数组。你可以使用print ord('a')获取到这个字母的 ASCII。总之,在 Python 2 中,对于 str 代表的含义有两种,这改变了语言的唯一性。而在 Python 3 中答案是唯一的。

「Python之禅」里讲过,「找到一种或唯一的一种解决方案去解决问题」。文字既能代表文本数据又能代表二进制数据这很麻烦。一旦对象脱离我们的控制,就会让人变得恐慌。有人说我们可以用 Unicode,但实际中人们并不会那么做,有事还会引发不必要的麻烦。比如在 Python 2 中,中文显示是这样的:

>>> geektime = “极客时间”

>>>geektime

'\xe6\x9e\x81\xe5\xae\xa2\xe6\x97\xb6\xe9\x9\xb4'

Python 3 就简明很多:

'极客时间'

简化语言,移除 str 的二义性能够减少代码的出错率。避免 bug 是一件很重要的事情,但却经常被人遗忘。Python 之禅中的另一句话「清晰胜于晦涩」也表达了这个意思,歧义和隐性知识使得代码不容易沟通,并容易形成 bug。

正如 Brett Cannon 所言,人们有时会忘记 Python 有多久的历史了

1989年的冬天,Guido 为了度过一个有意义的圣诞节开始编写 Python 语言的编译器和解释器。1991年2月,第一个 Python 版本诞生,编译器是 C 语言实现的。这意味着 Python 的出现早于 1991年10月发布的第一版 Unicode 标准。后面出现的语言,比如 Java,Ruby 等都选择在支持 Unicode 的标准上实现自己的 str 类型,这就让 Python 3 变得很尴尬。2004年 Python 3 的方案开始酝酿,开发者们意识到,支持 Unicode 和来自任何语言的的文本是非常重要的。

Python 是一门面向世界的语言,而不只是那些支持 ASCII 码覆盖的罗马数字的语言。这是 Python 3 在处理文本时选择使用 Unicode 的原因。

Python 3 的开发过程大致是这样的:

在 2004 年我们开始开始设计 Python 3。我们清楚 Python 的受欢迎程度在不断上升,我们也希望能够延续这种势头。但这也同时意味着如果我们想及时修正所有的设计缺陷来保证它的受欢迎度,最好趁现在而不是以后。我们设想 Python 3 相较于 Python 2 会持续更长一段时间,而 Python 2.7 仅仅是用来维护以前遗留的项目,不会用于新项目中,那用 Python 3 写出的代码一定会多于用 Python 2 的。所以我们决定来承受由 Python 2 向 3 转型之痛。并且在这种设想下开发了 Python 3。

以后我们再也不会做这种打破向后兼容性的事情。

但是事情显然没有开发者想象的那么简单,由于缺乏向下的兼容性,而且 Python 2 的代码历史悠久,库包丰富,并且大部分程序都是生产环境的应用,迁移成本太高,看不到显而易见的好处。另外,由于 Python 2 是如此好用以至于开发者们掌握了熟练的技巧避免 str 带来的陷阱。发布完 Python 3 之后,Python 的核心开发者们认为社区会最终摒弃上一个版本,痛痛快快的转向新世界。但事与愿违,两个版本并存的情况持续了近十年之久。Python 的开发者们又花费了更多的时间设计了一个 Python 2/3 的兼容子集来实现这种过渡。

关于 Python 2 和 3的主要区别,可以参考这篇文章:

http://runoob/python/python-2x-3x.html

那么该学 Python 2 还是 Python 3 呢?如果是五年前我推荐学习 Python 2,两年前我推荐都要学都要掌握,事实上在 Mac 环境里用 homebrew 安装和使用两个版本的环境是非常方便的。时至今日,大量的库已经开始普遍支持 Python 3 了,而且 Python 3 的特性已经远远不是解决 str 问题了,所以现在我会推荐你直接学习 Python 3。

看看 Instagram 的案例,在相当长的一段时间,Instagram 都跑在 Python 2.7 + Django 1.3 的组合之上。在经过一系列的讨论后,他们最终做出一个重大的决定:升级到 Python 3。

Python 3 有什么优势呢?新特性,比如类型注解 Type Annotations;提供了更好的性能;并且社区的支持重心已经完全迁移到 Python 3,有什么理由再去使用 Python 2 呢?

关于 Instagram 和 Python 的故事,大家可以下载「极客时间」,找到热点专题里的「编程语言」,一篇长文,有详细的描述。

Python 相关文章:

人生苦短,我用 Python

Python 之禅

Python 的进击

点击阅读原文,下载极客时间 iOS 版。

img

在线咨询

建站在线咨询

img

微信咨询

扫一扫添加
动力姐姐微信

img
img

TOP