Python学习经验谈:版本、IDE选择及编码解决方案

开发 开发工具
本文对Python的版本选择,IDE选择及编码的解决方案进行了一番详细的描述,实为Python初学者必读的Python学习经验心得。

话说目前三种常见动态语言Ruby, Lua, Python我竟然都接触过了,用下来发现还是Python比较有趣

"Battery Included“的确不是盖的,各种功能的库一应俱全,几行代码就能完成神奇的功能。以下介绍学习Python以来的一些感想跟经验,希望对想要学习Python或者和我一样的Python初级入门者能有所帮助

另外强调下本文全部讲的是Windows平台下的事情…

Python学习经验1.选择Python版本和发行版

Python目前的主流版本很丰富,2.5,2.6和新的3.0都有人用。那么到底该装哪个版本好呢?

经过一段时间的使用我强烈的意识到目前的情况下(今天是09年5月24日),绝对是2.5版比较合适。

主要是因为非常多的第三方库目前只有对应2.5的简单安装包。虽然理论上2.5下能用的库2.6也肯定没问题,但是实际上总有各种各样的问题。例如pyinstaller到现在也是只支持2.5。在这个问题上我可以非常坚定的讲:装2.5肯定没错,你以后会因为这个感谢我的。

Windows下是没有自带Python的,那么选择一个发行版是必须的。

常见的发行版有Python.org的官方的发行版,ActiveState的ActivePython这两个。

之前我一直装的是后面ActiveState的哪一个,后来因为要用到numpy,找到了这个Python(x, y)

用上这个以后我对Python的好感是更上一层楼。

[[5266]]

这个发行版有点大(接近400mb),但是里面附带了科学计算方面的很多常用库,以及著名的PyQt 。可能有人觉得科学计算方面的库不太用的到,但像nump,scipy等一干库被很多其他库依赖,还有很多文档相关的库如sphinx没有的话也会很头痛。同时PyQt对于新手来说也是出名的难以正确配置,而python(x, y)装好了以后直接就能用,感觉非常棒。同时该发行版还附带了IDE和一些有用的工具。其中IPython完全替代了Python自带的那个难用的互动Shell。

IPython

Python自带的shell应该还是蛮常用的。那么这个IPython就相当于它的超级加强版:带彩色显示,语句自动完成,额外的常用命令等等。其中tab键自动补完非常强大。比如在上图中我输入sys. (注意有个点),然后按tab键,这时IPython会显示出sys下所有的属性和方法,这肯定就是你我朝思暮想的超级自动补全。而且应为是在互动模式下,语句是实实在在被执行的,很好理解这里的自动补全是最完整的,比单靠分析代码的方式效果好很多。

其他方面的话,Python(x, y)还附带了所有库的离线文档(看的出来都是人工整理出来的),以及Eclipse+PyDev集成(这个下面会单独讲到)。附带一个工具用于启动各个部分以及查阅文档。

其自带的Python版本正是2.5

总之,装个Python(x, y)试试看,十有八九不会后悔。

Python学习经验2.IDE的选择

我一直认为选择一个好用的IDE绝对能使编程乐趣加倍,而对我来说好的IDE最重要的一点就是代码补全和自动文档显示。我尝试过的IDE/编辑器有Komodo Edit,UliPad,Pydev***还是选择了Pydev这个看似有点笨重的Eclipse集成。

Pydev的基本使用跟其他的差不多,在代码补全方面有点小技巧:

Pydev会自动通过代码分析来进行一定程度上的代码补全,但是很多需要运行时才能获得的信息是不能这样获得的。通过在Pydev中设置Forced Buildins来设置,能取得更好的效果。试了几次发现基本上大部分库都能获得自动补全,同时会显示docstring,效果相当不错。

具体方法如下图,在Pydev窗口中选择菜单栏Window->Preference->Pydev->Interpreter Python

如下图中,点击New,输入你需要使用的模块名字即可

输入你需要使用的模块名字

总体效果绝对是同类IDE中比较好的

总体效果

Python学习经验3.Python中String/Unicode的编码问题

Python中的String和Unicode都提供了decode和encode方法,让人很容易混乱,然而出现乱码和UnicodeEncodeError这种情况很让人崩溃,那么下面介绍些个人心得。

Python中的String的地位就相当与C中的char *做的字符串,储存的可以使ASCII字符串,也可以是未经处理的数据。所以String中的每一个值都像是一个char。而Unicode中则将每一个元素认为是一个真正的Unicode字符。

关于decode/encode方法。decode可以理解为decode from,由一个String调用decode方法将他自己按传入的编码名来decode成为一个Unicode串。encode可以理解为encode to,由一个Unicode 来调用encode方法将他自己按照传入的编码名来encode为一个String串。所以String就是输入输出时使用的,而Unicode则是程序内部进行处理时的东西。

对于编码是产生Error,则可以通过在Encode时传入错误处理参数   'ignore’/ ' replace’ 来避免。

本文来自apit的博客:《Python二三事》

【编辑推荐】

  1. Python和Ruby:流行动态脚本语言之特点对比
  2. Ruby和Python的语法比较
  3. Python框架更新:Django 1.1修炼一年始出炉
  4. Python和Jython的区别简述
  5. 浅谈使用Aptana构建Python开发环境
责任编辑:yangsai 来源: apit的博客
相关推荐

2011-09-09 09:50:40

Oracle

2010-02-03 09:53:08

Python版本

2009-08-03 10:13:13

开发框架

2010-02-01 15:41:55

扩展Python

2010-02-02 17:08:26

Python静态编译器

2010-02-02 17:08:26

Python静态编译器

2010-02-02 16:07:17

Python开发人员

2009-08-07 17:38:08

C#无词尾符号

2009-07-02 11:49:44

JSP学习步骤

2010-02-01 17:33:24

Python主线程

2010-02-01 14:48:43

2013-08-28 15:53:41

远程工作远程管理项目管理

2009-09-14 15:04:44

2024-05-28 07:01:29

2010-02-26 09:42:52

Python线程池

2015-09-16 10:13:16

游戏性能

2017-01-20 09:43:12

日志告警挖掘

2010-08-17 13:23:49

2012-07-13 14:25:59

2009-06-29 15:39:53

Servlet和JSPServlet引擎
点赞
收藏

51CTO技术栈公众号