【和我一起学python吧】初学Python,版本如何选择?
早在四年多以前,在我进入英才网之前,去面试过一家海归创业的公司。他们需要的是有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,版本如何选择?的更多相关文章
- Anaconda多版本Python管理以及TensorFlow版本的选择安装
Anaconda是一个集成python及包管理的软件,记得最早使用时在2014年,那时候网上还没有什么资料,需要同时使用py2和py3的时候,当时的做法是同时安装Anaconda2和Anaconda3 ...
- 初学LINUX版本的选择
1.用于企业环境:建议使用商业版本,例如Red Hat的RHEL或者是Novell的SuSE都是很不错的选择!毕竟企业的环境强调的是永续的经营,你可不希望网管人员走了之后整个机房的主机都没有人管理吧! ...
- 【和我一起学python吧】python的一些推荐
看到未名的几篇帖子 使我想起了和python的一些经历,于是写了一篇咚咚. 1 书籍: python的syntax足够简单,semantics也不复杂,不怎么会使人混乱,一般来说看自带的文档足够可以学 ...
- 【和我一起学python吧】Python安装、配置图文详解
Python安装.配置图文详解 目录: 一. Python简介 二. 安装python 1. 在windows下安装 2. 在Linux下安装 三. 在windows下配置python集成开发环境( ...
- 和我一起学python,初识python (life is short ,we need python)
作者:tobecrazy 出处:http://www.cnblogs.com/tobecrazy 欢迎转载,转载请注明出处.thank you! 由于项目需要(并非因为life is short), ...
- 【和我一起学python吧】Python解释执行原理
这里的解释执行是相对于编译执行而言的.我们都知道,使用C/C++之类的编译性语言编写的程序,是需要从源文件转换成计算机使用的机器语言,经过链接器链接之后形成了二进制的可执行文件.运行该程序的时候,就可 ...
- 【和我一起学python吧】Python 启航
话说万张高楼平地起,不会走之前先学会爬吧.尤其对于我等的小菜同学来说更是这样,不管怎么先code first吧,等我等小菜们翅膀硬了才test first吧. 1, 怎么运行python? 先到pyt ...
- 【和我一起学python吧】python的数据类型
python的元组.列表.字典数据类型是很python(there python is a adjective )的数据结构.这些结构都是经过足够优化后的,所以如果使用好的话,在某些area会有很大的 ...
- 【和我一起学python吧】python入门语法总结
1.python是一个解释性语言: 一个用编译性语言比如C或C++写的程序可以从源文件(即C或C++语言)转换到一个你的计算机使用的语言(二进制代码,即0和1).这个过程通过编译器和不同的标记.选项完 ...
- 初学python,感受和C的不同
从开始看Python到现在也有半个多月了,前后看了Python核心编程和Dive into Python两本书.话说半个月看两本,是个人都知道有多囫囵吞枣,这也是因为我暂时没有需求拿这个做大型开发,主 ...
随机推荐
- *[topcoder]LongWordsDiv2
http://community.topcoder.com/stat?c=problem_statement&pm=13147 此题关键在于发现ABAB的组合最多有26*26种,可以穷举,然后 ...
- java:异常处理
异常:编译正常,但运行出错,会中断正常指令流 RuntimeException:运行时异常 分为:uncheck exception.和check exception(除了RuntimeExcepti ...
- 一个不错的log4j.properties例子
# Set root logger level to WARN and append to stdout #在开发环境下日志级别要设置成DEBUG,生产环境设置成info或error log4j.ro ...
- SQL索引一步到位(此文章为“数据库性能优化二:数据库表优化”附属文章之一)
SQL索引一步到位(此文章为“数据库性能优化二:数据库表优化”附属文章之一) SQL索引在数据库优化中占有一个非常大的比例, 一个好的索引的设计,可以让你的效率提高几十甚至几百倍,在这里将带你一步步揭 ...
- tomcat作为windows服务启动失败解决方法
再使用如下方法注册windows服务时,出现问题: set CATALINA_BASE=E:\tomcat\tomcat-web-server set CATALINA_HOME=E:\tomcat\ ...
- IOS判断手机型号
#define iPhone5 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CG ...
- Eclipse常见设置及快捷键使用总结(更新中)
Eclipse中常见设置: 1.Eclipse在保存时设置自动去掉多余的import和格式化代码 路径: window --> preferences --> java --> Ed ...
- JS中字符串拼装 单双引号的处理 字符转义
js中可能会用到动态追加元素,可能数据也是从后台传过来的,当然有两种思路, 1.在后台拼装好直接返回; 2.在前台js里面拼装, 如果拼装大量的html时可能单双引号就容易出问题;那么如何解决呢?最近 ...
- c#模拟百度电击器方案
核心提示: 我 们都知道百度对于用户体验很重视,如果一个关键词的某个搜索结果,点击量会很对的话,则百度会认为这个结果是用户所喜欢的结果,然后这个网站自然会在百度 得到一个很好的排名. 网络上也出现了百 ...
- objcopy
objcopy objcopy [options] infile [outfile] Copy the contents of the input object file to another fil ...