【和我一起学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两本书.话说半个月看两本,是个人都知道有多囫囵吞枣,这也是因为我暂时没有需求拿这个做大型开发,主 ...
随机推荐
- Hibernate逍遥游记-第4章映射对象标识符-increment、identity、hilo、native、assigned、sequence、<meta>
1. package mypack; import java.lang.reflect.Constructor; import org.hibernate.*; import org.hibernat ...
- 基于QT的换肤整体解决方案(QSkinStyle)(提供Linux的XP风格)
基于QT的换肤整体解决方案(QSkinStyle) 对QT这个成功的跨平台GUI库,本身内置了对换肤功能的实现,比如cleanlooks.plastique等跨平台风格:还有一些是和平台相关的风格,比 ...
- Btrace入门到熟练小工完全指南
BTrace是神器,每一个需要每天解决线上问题,但完全不用BTrace的Java工程师,都是可疑的. BTrace的最大好处,是可以通过自己编写的脚本,获取应用的一切调用信息.而不需要不断地修改代码, ...
- SqlServer 如何以脚本形式导出数据
你是否遇到这样的情况,在公司导出一个数据库,回到家里导入自己的电脑里,然后发现数据库版本不匹配,这真是一个悲剧. 那么以下这个方法就可以避免这个悲剧,将数据以脚本的形式导出,这样灵活性更好. 1.选择 ...
- maven小项目注册服务(一)--email和persist模块
跟着书里的讲解,跟着做了一遍该项目: 首先明白注册账户的需求: 账号的lD和Email地址都可以用来唯一地标识某个用户,而显示名称则用来显示在页面下,方便浏览.注册的时候用户还需要输入两次密码,以确保 ...
- 04-语言入门-04-Fibonacci数
地址: http://acm.nyist.net/JudgeOnline/problem.php?pid=13 描述 无穷数列1,1,2,3,5,8,13,21,34,55...称为Fibona ...
- php整理(二): 数组
数组: 首先说一下对PHP中的理解,建立一个好的理解模型还是很关键的: 1.PHP中的数组实际上可以理解为键值对,key=>value;而对于key的取值,可以是string/integer;v ...
- 查看EBS中BI Publisher的版本
查看EBS中BI Publisher的版本问题,Oracle提供了如下的几种方法: 从BI Publisher产生的报表文件查看 通过系统已打过的补丁(Patch)来决定,通过补丁号和BI Publi ...
- gulp browser-sync自动刷新插件
很久没弄gulp了,都快忘了,今天又来温习下browser-sync 自动刷新插件,在安装的时候出现以下提示: $ npm install browser-sync --save-dev> ws ...
- Codeforces Round #239 (Div. 2)
做了三个题,先贴一下代码...终于涨分了 A. Line to Cashier 水题 #include <iostream> #include <cstdio> #includ ...