早在四年多以前,在我进入英才网之前,去面试过一家海归创业的公司。他们需要的是有unix开发经验的技术人员,但是因为他们当时所处的阶段对很多成熟 技术人员不是很吸引,所以条件放宽为熟悉面向对象的程序开发即可考虑。我当时草草看过过一遍C#的语法,当时的水平对一门新语言的掌握速度远不如现在,因 此也仅学到点皮毛,对于很多概念都不了解,比如重载和重写就不知道。我第一次听说Python这个语言,就是在那次面试。

  当时面试官在了解了我的情况之后,问我都掌握一些什么语言。我说我会什么什么(在这里不好意思列举),并且说刚刚学习了点C#。他说,那你对 Python了解吗?我当时就茫然了,然后傻了吧唧的说,我对这些新技术了解的不多。结果搞得那人也有点不知怎么说才好,憋了半天,才说,这个技术其实也 不是很新,只是在国内不怎么流行。后来我才知道,这个技术确实已经可以算是比较老了。令我没想到的是,时过4年,这个技术在中国也变得如此流行了。

  言归正传。打算学Python,还得从开放平台说起。自从闭关以来,狂上网了解这几年的技术趋势,发现最近很流行开放平台。除了社交类网站的开 放平台,google、百度等也推出了自己的开放平台。百度的风格很中国,总也搞不起来那种实验室、学院派的气氛来,反观Google就显得更有声有色一 些。了解了Google 的App Engine,看到它指定的开发语言就是Python(java作为第二语言也被支持了),于是就打算先学学这门语言。

  买了本Python的中文教材,下载了一些视频。然后上到官方网站Python.org,习惯性的下载了最新版的Python解释器,然后就开 始尝试。但是郁闷的是,按照教程编写的第一个程序就不成功。看来看去,发现原来Python3和Python2是完全两个不同的东西。我按照 Python2.7的教程编写的程序,在Python3下根本就不能正常运行。于是,又到Python的官网上仔细看了一遍,发现这样一个页面:http://wiki.python.org/moin/Python2orPython3 。这篇文章的题目就是:究竟是选择Python2还是Python3?

  这篇文章开篇第一句话,让我心里拔凉拔凉的:Python 2.x is the status quo, Python 3.x is the shiny new thing。嘛意思?意思就是,Python2.x到此为止,你可以继续用,但是我们不会再对这个框架进行升级。Python3.x将是一个全新的东西。 说白了,就是我们准备抛弃Python2.x了,就像MicroSoft当年抛弃ASP一样,这个语言的下一个版本会被完全重新设计。问题纠结 于,Python2.x经过那么长时间的发展,已经积累了大量的财富,有大量可以直接采用的解决方案,而Python3.x的应用还是空白。那么,作为一 个初学者,应该学哪个版本呢?

  说实话,我也没办法给你确切的答案。而官方给出的建议是:Which version you ought to use is mostly dependent on what you want to get done。说的多好啊,比中国人还深谙太极之道。看来不只影视明星擅长打太极,技术明星也一样。不过,官方还是给出了一些具体的建议的。 Python2.x好在哪?首先,它有大量的现成函数库可用;其次,现行的Mac和Linux默认的解释器还是Python2.x的。而有些情况下,你还 没得选择,必须用2.x,比如当你的程序的运行环境不取决于你的时候,Google 的App Engine就是用的2.5版本。但是,人家官方也说了,虽然2.x是宝刀未老,但是3.x作为一门语言来说也是definitely ready的,所以到底怎么选还是要看你。

  我的建议是,如果你有确切的项目要做,或者你学习这个东西希望在半年之内有所成并且希望仗此谋得一份工作,我建议你学2.x。比如我就是想尝试 尝试Google的开放平台,那么我会选择2.x。如果你只是对这门语言感兴趣,想学学,而又没有具体的时间表说哪天哪天我必须要用它来做什么,那么我建 议你学3.x,这样你能完整的跟着这门语言一起成长,等到它的应用环境成熟的时候,你也已经是个可用之才了。并且,对于学习2.x的朋友,我建议你有时间 有精力的话最好也适时开始3.x的学习,3.x才是未来。

【和我一起学python吧】初学Python,版本如何选择?的更多相关文章

  1. Anaconda多版本Python管理以及TensorFlow版本的选择安装

    Anaconda是一个集成python及包管理的软件,记得最早使用时在2014年,那时候网上还没有什么资料,需要同时使用py2和py3的时候,当时的做法是同时安装Anaconda2和Anaconda3 ...

  2. 初学LINUX版本的选择

    1.用于企业环境:建议使用商业版本,例如Red Hat的RHEL或者是Novell的SuSE都是很不错的选择!毕竟企业的环境强调的是永续的经营,你可不希望网管人员走了之后整个机房的主机都没有人管理吧! ...

  3. 【和我一起学python吧】python的一些推荐

    看到未名的几篇帖子 使我想起了和python的一些经历,于是写了一篇咚咚. 1 书籍: python的syntax足够简单,semantics也不复杂,不怎么会使人混乱,一般来说看自带的文档足够可以学 ...

  4. 【和我一起学python吧】Python安装、配置图文详解

     Python安装.配置图文详解 目录: 一. Python简介 二. 安装python 1. 在windows下安装 2. 在Linux下安装 三. 在windows下配置python集成开发环境( ...

  5. 和我一起学python,初识python (life is short ,we need python)

    作者:tobecrazy  出处:http://www.cnblogs.com/tobecrazy 欢迎转载,转载请注明出处.thank you! 由于项目需要(并非因为life is short), ...

  6. 【和我一起学python吧】Python解释执行原理

    这里的解释执行是相对于编译执行而言的.我们都知道,使用C/C++之类的编译性语言编写的程序,是需要从源文件转换成计算机使用的机器语言,经过链接器链接之后形成了二进制的可执行文件.运行该程序的时候,就可 ...

  7. 【和我一起学python吧】Python 启航

    话说万张高楼平地起,不会走之前先学会爬吧.尤其对于我等的小菜同学来说更是这样,不管怎么先code first吧,等我等小菜们翅膀硬了才test first吧. 1, 怎么运行python? 先到pyt ...

  8. 【和我一起学python吧】python的数据类型

    python的元组.列表.字典数据类型是很python(there python is a adjective )的数据结构.这些结构都是经过足够优化后的,所以如果使用好的话,在某些area会有很大的 ...

  9. 【和我一起学python吧】python入门语法总结

    1.python是一个解释性语言: 一个用编译性语言比如C或C++写的程序可以从源文件(即C或C++语言)转换到一个你的计算机使用的语言(二进制代码,即0和1).这个过程通过编译器和不同的标记.选项完 ...

  10. 初学python,感受和C的不同

    从开始看Python到现在也有半个多月了,前后看了Python核心编程和Dive into Python两本书.话说半个月看两本,是个人都知道有多囫囵吞枣,这也是因为我暂时没有需求拿这个做大型开发,主 ...

随机推荐

  1. 两个List合并,过滤重复记录

    import java.util.ArrayList; import java.util.HashSet; import java.util.Hashtable; import java.util.I ...

  2. Filter(过滤器)常见应用

    孤傲苍狼 只为成功找方法,不为失败找借口! javaweb学习总结(四十六)——Filter(过滤器)常见应用 一.统一全站字符编码 通过配置参数charset指明使用何种字符编码,以处理Html F ...

  3. iOS iOS7越狱

    1.使用盘古越狱工具 (或者PP助手) 2.越狱成功后需要安装Apple File Conduit “2”,用于替代afc2add插件 3.安装AppSync插件 (绕过系统验证,随意安装.运行破解的 ...

  4. SQL Server查询优化方法(查询速度慢的原因很多,常见如下几种) .

    今天看到一位博友的文章,觉得不错,转载一下,希望对大家有帮助,更多文章,请访问:http://blog.haoitsoft.com 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺 ...

  5. Django admin site(二)ModelAdmin methods

    ModelAdmin methods save_model(request, obj, form, change) 此方法为admin界面用户保存model实例时的行为.request为HttpReq ...

  6. jpa-hibernate配置转换

    persistence.xml spring-demo-cfg.xml hibernate配置文件 Spring Data JPA:为简化JPA的开发提供帮助.EntityManager的创建与销毁. ...

  7. C++ STL之list容器的基本操作

    由于list和vector同属于序列式容器,有很多相同的地方,而上一篇中已经写了vector,所以这一篇着重写list和vector的不同之处和特有之处. 特别注意的地方: (1)STL中迭代器容器中 ...

  8. zlib用法说明

    1. 如何获得zlib zlib的主页是:http://www.zlib.net/ 2. 用VC++6.0打开 把 下载的源代码解压打开,VC6.0的工程已经建好了,在\projects\visual ...

  9. csv 文件介绍

    CSV即Comma Separate Values,这种文件格式经常用来作为不同程序之间的数据交互的格式. 具体文件格式 每条记录占一行 以逗号为分隔符 逗号前后的空格会被忽略 字段中包含有逗号,该字 ...

  10. 关于<img>标签与文字垂直居中

    要让左边的图片与后面的文字居中,如下效果 HTML代码: <img class="iconCls" alt="最新客户端" src="${bas ...