python2和python3应该学哪个(python3.6与python3.7的选择)


Posted in Python onOctober 01, 2019

首先先说一下python2与python3的选择

许多刚入门 Python 的朋友都在纠结的的问题是:我应该选择学习 python2 还是 python3?

对此,回答是:果断 Python3 !(推荐学习:Python视频教程)

可是,还有许多小白朋友仍然犹豫:那为什么还是有人推荐我学习 Python2 呢?

其实,无外乎以下一些原因:

1. 无论是 Python 还是 Pip 的下载量,都是 2 比 3 多,可见 2 仍然是主流

错!造成 2 的下载量比 3 多的原因很多,但其中很重要的一条是,绝大多数操作系统(Linux 发行版)默认安装的仍然是 Python 2。人都是有惰性的,许多人懒得折腾就直接用了2 了。但是,2 在下降,3 在上升这是不争的事实。拥抱未来才是王道啊。

2. Python 2 和 3 不兼容,学了 3 还得学 2

错!Python 提供了许多辅助的库,可以让你分分钟写出兼容 3 和 2 的代码,你要做的只是引入几个包而已,几乎不用修改代码。实在万不得已非得用 2,你有 3 的基础,几乎不需要什么额外的学习,也能立刻上手 2。

3. 许多库还停留在 Python 2,Python 3 用不了

错!说出这话的这位仁兄,你是有多久没有关注 Python?太不了解行情了。

根据 py3readiness 的最新统计结果,Pip 上最流行的(下载量最高的)前 360 个库,已经有345 个支持 Python 3 了

python3_readiness.png

其中,只剩下 15 个(大约 4%)库暂时还不支持 Python 3。你究竟是有多执着,非要等到 100% 才肯用 3?

你的工作能有多特别?非得用2才能搞定?即使真遇到这样的情况,使用 virtualenv, conda 这些成熟的工具,分分钟在你的机器上另起一个 2 的环境,和 3 完美兼容,你还需要担心什么?

拥抱 Python 3 吧!人生苦短,我用 Python 3。

选择 Python3.6 还是 Python 3.7

Python 3.7 已经发布了,目前Python的用户,主要使用的版本 应该是 Python3.6 和 Python2.7 ,那么是不是该转到 Python 3.7 呢?

首先大家要知道Python 3.7 是对 Python 3.6 的升级。Python官方对 3.7 的新特性描述链接如下:

https://docs.python.org/3/whatsnew/3.7.html

我们最需要注意的是 相对于 3.6 来说, 3.7 在语法上几乎是完全 兼容, 除了如下这一点:

Backwards incompatible syntax changes:
async and await are now reserved keywords.

这段话,指出了 3.7 的唯一不兼容 3.6 的地方就是 async 和 await 变成了Python语言中保留的关键字了。

什么意思?

就是 async 和 await 这两个词 就像 import, for, while 这些词一样, 是系统保留特殊用途的关键字。

也就是说在Python 3.7 里面你不能使用定义 变量、函数之类的 名字

比如,我像下面这样定义变量和函数:

async = 1
def await():
  pass

使用Python3.6 运行,没有问题, 而在Python 3.7 里面就会报如下错误

SyntaxError: invalid syntax

如何选择?
所以,如果项目 目前使用的是 Python 3.6 ,而且项目又比较大的话,个人建议不用太着急转到 3.7 上去。 因为不知道你的项目代码和依赖的第三方库的代码是不是做过3.7的兼容性测试, 毕竟 3.7 刚刚出来不久。

比如,白月黑羽写这篇文章的时间是2018年7月13号,我就发现 postgresql 数据库的Python API 驱动库, psycopg2的安装在 Python 3.7 上就有问题。

3.7 的 pip 执行

pip install psycopg2-binary

安装就会失败,提示 Error: pg_config executable not found

而 3.6的pip安装就没有问题。

所以,我们最好等到3.7被普遍使用了,再转过去。

现在要转到Python3.7, 除非 有你们项目特别渴望使用的 Python3.7 里面的新特性 。 如果是那样的话,一定要 做一个对老的代码覆盖比较充分的测试,防止上线运行的时候出现问题。

用Python2.7怎么办呢?
而如果目前 项目使用的是 Python 2.7 运行,那 主要是 Python 2 和 Python 3 之间 的 迁移问题了, 语法差异有些大。

如果项目声明周期比较长的话, 建议还是 要在合适的时候升级到 Python3。 因为毕竟Python2 在2020年官方就不再维护,到时候出现什么安全漏洞之类的问题,就比较麻烦了。 或者是 有好用的第三方库, 这些库可能没有 Python2 的版本,那样就更麻烦了。

如果决定吧项目从Python2 升级到 Python3, 目前可以先升级到Python3.6 , 因为业界目前对 3.6 的支持还是比较普遍的。 等以后 3.7 支持比较普遍后,再做升级不迟。

三水点靠木小编补充:最近学习python看了很多python3的文章都是推荐用python3.6,大家一起动起来吧。

Python 相关文章推荐
下载给定网页上图片的方法
Feb 18 Python
Python的Django框架安装全攻略
Jul 15 Python
Python实现螺旋矩阵的填充算法示例
Dec 28 Python
numpy使用fromstring创建矩阵的实例
Jun 15 Python
Python3.5基础之函数的定义与使用实例详解【参数、作用域、递归、重载等】
Apr 26 Python
浅谈PyQt5 的帮助文档查找方法,可以查看每个类的方法
Jun 25 Python
解决Django中多条件查询的问题
Jul 18 Python
基于numpy中的expand_dims函数用法
Dec 18 Python
Python 解决OPEN读文件报错 ,路径以及r的问题
Dec 19 Python
python爬虫使用requests发送post请求示例详解
Aug 05 Python
Python如何爬取51cto数据并存入MySQL
Aug 25 Python
Django路由层URLconf作用及原理解析
Sep 24 Python
使用Python制作一个打字训练小工具
Oct 01 #Python
Python + Flask 实现简单的验证码系统
Oct 01 #Python
python 矢量数据转栅格数据代码实例
Sep 30 #Python
python多进程间通信代码实例
Sep 30 #Python
Python实现二叉树的最小深度的两种方法
Sep 30 #Python
python打开使用的方法
Sep 30 #Python
python 字典有序并写入json文件过程解析
Sep 30 #Python
You might like
第四章 php数学运算
2011/12/30 PHP
PHP面向对象之旅:深入理解static变量与方法
2014/01/06 PHP
PHP扩展开发入门教程
2015/02/26 PHP
php实现在服务器端调整图片大小的方法
2015/06/16 PHP
使用PHP接受文件并获得其后缀名的方法
2015/08/05 PHP
php intval函数用法总结
2019/04/14 PHP
window.open被浏览器拦截后的自定义提示效果代码
2007/11/19 Javascript
从零开始学习jQuery (四) jQuery中操作元素的属性与样式
2011/02/23 Javascript
jquery仿京东导航/仿淘宝商城左侧分类导航下拉菜单效果
2013/04/24 Javascript
输入自动提示搜索提示功能的使用说明:sugggestion.txt
2013/09/02 Javascript
input链接页面、打开新网页等等的具体实现
2013/12/30 Javascript
Angularjs中的事件广播 —全面解析$broadcast,$emit,$on
2016/05/17 Javascript
浅析jQuery中使用$所引发的问题
2016/05/29 Javascript
jquery基本选择器匹配多个元素的实现方法
2016/09/05 Javascript
基于 Vue.js 2.0 酷炫自适应背景视频登录页面实现方式
2018/01/17 Javascript
jQuery表单元素过滤选择器用法实例分析
2019/02/20 jQuery
vue.config.js中配置Vue的路径别名的方法
2020/02/11 Javascript
vscode 插件开发 + vue的操作方法
2020/06/05 Javascript
[01:20:38]完美世界DOTA2联赛 GXR vs IO 第一场 11.07
2020/11/09 DOTA
Python自定义函数的创建、调用和函数的参数详解
2014/03/11 Python
Python实现监控键盘鼠标操作示例【基于pyHook与pythoncom模块】
2018/09/04 Python
python 递归深度优先搜索与广度优先搜索算法模拟实现
2018/10/22 Python
基于tensorflow指定GPU运行及GPU资源分配的几种方式小结
2020/02/03 Python
Python逐行读取文件内容的方法总结
2020/02/14 Python
python GUI库图形界面开发之PyQt5日期时间控件QDateTimeEdit详细使用方法与实例
2020/02/27 Python
Python requests模块session代码实例
2020/04/14 Python
Python Pivot table透视表使用方法解析
2020/09/11 Python
cosme官方海外旗舰店:日本最大化妆品和美容产品的综合口碑网站
2017/01/18 全球购物
澳大利亚一站式数码相机商店:CameraPro
2020/03/09 全球购物
动物科学专业毕业生的自我评价
2013/11/29 职场文书
计算机求职自荐信范文
2014/04/19 职场文书
大学理论知识学习自我鉴定
2014/04/28 职场文书
单位政审意见范文
2015/06/04 职场文书
2019思想汇报范文
2019/05/21 职场文书
Python入门之基础语法详解
2021/05/11 Python
使用SQL实现车流量的计算的示例代码
2022/02/28 SQL Server