start to use python

缘来

最近因为使用Ruby做某个Excel内的数据分析时,写的脚本执行时间过长,考虑进行优化。从网上看到Python的数据分析能力很强,所以试着Ruby换成了Python。


开始

整体切换还是很顺利的,花了段时间看了下基本的语法,然后就是将Ruby写的脚本,先直接翻译成Python语言实现,然后再用Python特有的第三方库进行优化。

整个切换过程还是比较顺利的,毕竟两个语言有很大的相近的地方。当然也遇到了不少坑,比如Python3和Python2的选择,print输出的坑。

Python3 vs Python2

这里没有纠结那么多,直接选择了Python3,毕竟是以后的发展方向。

但是也遇到了部分类库不支持,print函数需要括号,中文字符无法输出,没有ruby的#{}字符串变量,这些东东,但还是都过来了。

print无法输出中文

这是比较大的一个坑,找到和解决它花了不少时间,开始以为是其它地方的问题。最后是在网上看到的一个解决方案,因为python3的print不是全编码输出的,必须指定一下,添加以下的代码就OK了:

import io, sys
sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf8')

相比较而言,不得不说,Python的print没有Ruby的puts和p好用啊。

Python VS Ruby

这个题目比较大,只能简单的就第一感觉来说:

Python的好处就是编码样式比较统一第三方类库超多
可以关注自己需要解决的问题不用费心思在语法细节上
Ruby的优势是处理文本效率很高,语法糖很多,用起来很省心。
但是第三方类库和Python相比差距还是比较大。

其实后来回顾时,针对我脚本中的部分功能,Ruby的处理文字、正则的效率可能比Python还强,但是由于没有Python那么完善的第三方类库。如NumPy,Pandas这些,所以最终效率还是Python领先了。

最终还是选择了Python,而且可能近期都会使用它。


python

2016-04-04 09:05 +0800