我是个喜欢尝鲜的人,所以机器上的JDK、GoLang都是最新的,反正PC也不是生产环境。最近重装机器,又正好看到Python 3.7的Alpha版本出来了,就下载了个最新的版本装上,结果悲剧了,pip安装TensorFlow死活不行。折腾小半天,还是乖乖地换回3.6.x,这是TensorFlow Python API所支持的最新版本。

Python 3.6.2

前些日子,跟两个兄弟聊天,突然奇想,打算做个MUD游戏来怀下旧。有个很不错的MUD的框架叫Evennia,是Python写的,而且是基于2.7的。我对机器的软件环境有一种近乎变态的要求,混乱的版本搞在一起当然不能接受,于是就用另一台笔记本安装了Python 2.7,用不同的电脑做不同的事。

大家都晓得,Python 2和3的差异很大,所以官方也还在同时维护2.7和3.x两套东西。这么多年过去了,Python社区做了很多2to3的兼容性工作,按理说不存在选择2还是3的问题了。但是有一些老顽固的人和老顽固的库还在坚守2.x,这就给初学者带来了困惑,到底该学哪一个。

对于初学者,我的建议当然是直接学Python 3,除非有明确的指征要求你必须用Python 2(比如我想做MUD的例子)。

Python 3和2在语法层面改进很大,所以源代码是不兼容的。Python 3是2008年发布的,至今10年了;Python 2的最后一个分支2.7是2010年中期发布的,此后就没有大的改动了。从性价比的角度,也应该选择学习Python 3,而不是花时间去鼓捣2.x。

从Python 3.3(2012年Release的)开始,所有对标准库的改进,都只在3.x版本中体现。这也表明了Python社区从2.x迁移到3.x的决心。Python官方网站上有一篇名叫《Should I use Python 2 or Python 3 in my development activity》的文章,有一句开宗明义的话:

Python 2.x is legacy, Python 3.x is the present and future of the language

作为初学者,是愿意跟一个前朝遗老玩呢,还是愿意跟进Python的现状及未来?

最让人担心的,其实是第三方库和框架,有的还在继续用Python 2.x。我翻了一下github上的一些项目,发现但凡还停留在2.x的,基本处于没人维护的状态。大多数广泛使用的库,都已经兼容Python 3了。Python官网上列出了一些,包括机器学习中最常用的数值计算库Numpy和SciPy,机器视觉常用的OpenCV 3, HTTP库Request,XML PARSER库lxml,WEB框架Django.....关于3和2的兼容性,pythonhosted上有篇文章《Six: Python 2 and 3 Compatibility Library》讲得非常详细,大家可以参考。

最新的Release::Python 3.6.4

可能也会有高手告诉新手,语法层面的差别不算事儿,Py2和Py3没有区别,编程思想数据结构算法才是核心吧啦吧啦,但是我觉得手锯和电锯还是有区别的。Python作为一门如日中天的动态语言,在不断进化,语法改进的背后,也就是“编程思想”的改进。PL作为一个艰深的计算机科学分支,语法演化的背后是有深刻的思想性的东西的,轻视语法及其语义是不对的。

我的一个朋友遵循最新的C# Spec写了一个软件,然后告诉我说:这代表了我2017年的编程水准(他从1988年开始编程)。我看了看,好多我没见过的东西。虽然前几年我也用C#写过一款赖以谋生的软件产品,但编程方式还比较古老一点,没有深入了解C#语言的最新发展,换言之,也没有了解C#的最新的编程思想。

新的一年里,如果想学一门新的手艺,就学Python 3吧。

直接学python3_初学者可以直接学Python3吗?相关推荐

  1. python3学哪个版本好玩_python2和python3到底应该学哪个好?

    许多刚入门 Python 的朋友都在纠结的的问题是:我应该选择学习 python2 还是 python3,Python 3.7 已经发布了,目前Python的用户,主要使用的版本 应该是 Python ...

  2. 新手学java还是python知乎_编程初学者应该先学C++、Java还是Python?

    最近,看到这样的一个话题:"打算自学编程,但是不知道该先学哪门语言入门?编程初学者应该先学C++.Java还是Python?",作为一个新手,应该学什么语言入门比较好呢?相信这是困 ...

  3. python容易学ma_初学者学python 初学者学python好学吗

    初学者学python 初学者学python好学吗 初学者学python好学吗?Python是最容易入门的编程语言,没有之一.如果初学者接触的第一门语言是C或者C++,对他们来说最难的不是语法,而是容易 ...

  4. 舞蹈测试软件,中舞网评测:一款学舞初学者必备的舞蹈APP

    舞蹈APP,学舞初学者必备 今天给大家推荐一款学舞初学者必备的舞蹈APP,简单,易上手.快则一周,慢则三十天,让你轻松学会一支舞. 那如何使用中舞网APP快速学会一支舞呢?接下来就由小编为大家详解. ...

  5. 谈谈初学者该怎么学电脑

    十五年前,一说电脑,就感觉是很高科技的东西,那时候一般只有计算机专业和相关行业的人才能够接触.随着信息和科技的发展,电脑已经渗入到各个行业和家庭,电脑不仅广泛用于各种工作,还普及到了家庭娱乐中.因此, ...

  6. 编程初学者应该先学C++、Java还是Python?

    语言推荐: 第一大类语言包括Java.C.Python和C++. 这类语言都是非常通用的语言,它们并不局限于特定的编程平台或用途.(无疑问,你应该熟悉这四种语言.) 第二大类语言包括Java.C#.P ...

  7. 学python有什么好处 学完可以做什么

    近几年来,python在国内越来越火,越来越多的人开始学习python,学完python以后不仅仅是有了更多的就业机会,而且薪资也会越来越高. 学python可以做什么 学python可以做web开发 ...

  8. 从零开始学电脑办公_每天学一点 7天学会使用电脑办公操作

    在学习前,可能 有人会问:现在都是用手机比较多,还学电脑 有什么用! 试问一下 做自媒体.编程.设计.玩大型游戏.办公 哪样 离得开电脑,手机在娱乐方面比较方便,拿来工作 那还是电脑更加实用方便! 而 ...

  9. 湘潭哪里学计算机编程,湘潭哪里学机器人编程?湘潭学机器人编程的学校有哪些?...

    原标题:湘潭哪里学机器人编程?湘潭学机器人编程的学校有哪些? 随着机器人编程教育在一线城市的大众化,许多家长也纷纷跟随着趋势送孩子去学习,如果你也想要自己的孩子学习机器人编程,那就一起来看看学习机器人 ...

  10. 外行学计算机,《新手无忧学电脑:外行入门学电脑(2008至尊经典版)》低价购书_计算机与互联网_孔网...

    <新手无忧学电脑:外行入门学电脑(2008至尊经典版)>以全新思路讲解了电脑基础知识及综合应用技能,详细剖析了外行对电脑一窍不通到能熟练操作电脑的全过程,是一本为电脑初学者量身打造的入门级 ...

最新文章

  1. asp.net 生成下载word的两种方式
  2. LaTeX 图片插入
  3. css,css,javascript实现一个简单的计算器
  4. 使用delphi 开发多层应用(十二)使用kbmMW webserver 返回JSON
  5. opencv进阶学习笔记8:模板匹配
  6. docker pull命令入门
  7. ES6学习笔记一:let、const、块级作用域
  8. java+mysql企业进销存管理系统
  9. 【freeradius】使用radclient调试radius协议
  10. Linux mysql 主从 配置
  11. java font 字体大小_java的字体的颜色,型号,大小的方法
  12. 使用Git上传本地项目到GitHub
  13. win10无敌隐身术
  14. 【Windows7】win7启动 报错 AutoIt错误,不能打开脚本文件
  15. json和jsonb类型——PostgreSQL
  16. 【Arduino实验10 数码管显示】
  17. 数据库连接池 ( 二 ) 连接池概念
  18. apache atlas
  19. 基于单片机的农业大棚
  20. 登陆页面总结(bootdo)

热门文章

  1. 医学界的动作捕捉系统(一)
  2. Kmeans算法思想
  3. 解决ubuntu与virtualbox共享文件夹访问权限问题
  4. 数学通道的应用(十四)-负PWM控制下有效值的计算
  5. Java基础之集合篇(内容超详细,带你轻松搞懂List、Set和Map的使用)
  6. 批量md5解密教程,用这个免费md5解密网站亲测能解
  7. 加减乘除求余 利用 位运算实现(详细)
  8. SS LSTM全文翻译
  9. 我叫mt4公会攻城战服务器维护中,我叫MT4公会攻城战怎么打 我叫MT4公会攻城战打法攻略...
  10. PaddleDetection算法分析(7)