文档章节

Python修炼之路-循序渐进

openthings
 openthings
发布于 2015/01/21 09:07
字数 1355
阅读 411
收藏 8

        Python已经演变为一个庞大的生态系统,由于其底层全部用c写成,而且全部开放源码,因此几乎可以完成其它任何编程语言能干的事情。python虽然简单,但要成为高手也非一日之功。如何通过日常的功课,逐步进行修炼,个人的一些总结,分享如下,不对之处,欢迎指正。

        语言:从某种意义上说,python不像是一门编程语言,学习起来是很快的。但里面也有一些高深的东西现在连C++都在学习。但个人认为,使用Python的目的就是为了简单、高效,因此不必过于追求奇巧,在效率、特殊结构、算法上去过分纠结,能使就好。

        编辑器:首推Sublime Text,完全符合简单高效跨平台的原则,是必须掌握乃至精通的开发者“神器”。虽然基础界面使用C++写的,但是其插件开发和运行环境都是以Python为基础,对Python的编辑、开发、运行也支持的非常好,还可以使用Python快速扩展出插件,非常方便。但是刚开始的一些习惯跟别的软件不太一样,需要一个适应过程。

        pip包管理:可以快速安装各种python扩展包,谁用谁知道。在linux上,只需sudo apt-get install python-pip就可以装上,然后sudo pip install xxx就可以装上需要的组件,效率真是高啊。当然,库里没有的软件,下载来sodu python setup.py install也不难。

        py高级图形:总是用控制台的,总是感觉不过瘾,当然python的图形能力也是很强悍的,而且也不是想象中的“脚本语言用图形会很慢”。事实上,python上面的图形界面已经有gtk/wxpython/tkinter/qt等多种支持,不仅速度很好,而且绘制效果相当精美。而且,pyQtGraph可以绘制精细的统计图表,OpenCV这一计算机视觉的知名支持库也有python的版本,包括OpenGL三维渲染/OpenCL高性能计算之类的库也都能通过python调用。

        网络服务:django不用说了,估计用的人不少了。Tornado也是一个被知名互联网企业采用的高性能Web服务框架。Google当年的创始人也是python起家的,可能很多人并不知道。google网站的大部分服务仍然是使用python开发的。python的网络能力,可以说是“运用之妙,存乎一心”(不要学坏呀哈!)。

        python源码:蛋吃多了,就总想知道鸡长啥模样,这是程序猿和攻城狮的通病。想要了解python的运作机制,推荐看一看陈儒编写的《python源码剖析》,这应该是中国人在语言级别写的第一本到如此深度的书了(请恕本人孤陋寡闻!),哪些搞不懂汇编、编译器原理的童鞋,看看这个也基本能一窥编译器、字节码、虚拟机的端详。当然,到了这个份儿上,书的内容已经是见仁见智了,能理解到什么程度,千万不要为难自己,保重啊!

        无限扩展:python这一堆源代码,讲“扩展”好像说不上,因为任何增加的模块都是内核级的,方法也有很多:1、当然是创建一个Python的Class了,import XXlib 就可以使了;2、不用编译源码,通过扩展SDK创建一个扩展包,可以把以前的c/C++库Export到python中使用,这是推荐的方法,pyQt之类都是这样的路数;3、把python解释器连接到自己的程序中,通过脚本操控主程序的功能,pythonQt可以直接将C++的对象映射到python中访问(有点过于强悍了吧?);4、对源码精通的,可以直接把c的库编译了,跟源码编译上去,跟自己的库就没啥两样了。

        独立运行:跟那些复杂的安装程序说掰掰吧。python的脚本也可以打包运行的,使用py2exe即可,非常轻巧、几乎没有平台依赖性。很多小巧的工具软件都是这样做出来的,可能很多人没有意识到,python还可以这么玩呐!

        数据分析:玩了上面的东东,如果还不过瘾,试试numpy之类的科研人员的工具,再弄出几个图表,甚至于生成几个动画,瞬间“高大上”的感觉(有没有啊?),再通过rpy2(sudo pip install rpy2)调用R语言的模块,提升一下逼格!(不知道啥叫R的,看这里吧:http://www.r-project.org/ 。rpy2的鸡在这里:https://bitbucket.org/rpy2

        恭喜恭喜,你已经步入专业数据分析人员的行列了,这可是未来炙手可热的“坑”啊!

        至此,这一“深坑”已经为自己基本挖好了。

        跳吧!不要看两边,你将融入这蓝天里!......还是蓝海里?

        

        顺便提一句,最近几年出了个micropython(https://github.com/micropython/micropython),可以在mcu微控制器上运行,以后没准家里的电饭煲运行的是python! 肚子饿的时候,运行一段python脚本,饭就好了,然后发个消息“Hello programmer,  your FAN get ready!”。


© 著作权归作者所有

openthings
粉丝 322
博文 1138
码字总数 687611
作品 1
东城
架构师
私信 提问
加载中

评论(2)

S
SuperGISer

引用来自“ZZWZZ”的评论

你有没有在做GUI开发可视化界面的软件来控制计算过程,并且显示计算的图形化结果?0
我一般不去探究过程,都是写完代码,让它自己去算,然后看结果。
ZZWZZ
ZZWZZ
你有没有在做GUI开发可视化界面的软件来控制计算过程,并且显示计算的图形化结果?0
高手问答第 220 期 —— 美女博士带你玩转 Python 算法

OSCHINA 本期高手问答(2018 年 12 月 11 日 — 12 月 17 日)我们请来了@zjgogogo 张洁为大家解答关于算法方面的问题。 张洁,计算机专业科班出身,获博士学位,《你也能看懂的Python算法书》...

局长
2018/12/10
18.9K
45
如果有人让你推荐编程技术书,请叫他看这个列表

计算机系统与网络 《图灵的秘密:他的生平、思想及论文解读》 《计算机系统概论》 《深入理解Linux内核》 《深入Linux内核架构》 《TCP/IP详解 卷1:协议》 《Linux系统编程(第2版)》 《Lin...

retref
2017/02/28
8.7K
47
荐书丨确认过眼神,这份Python书单一定是你的菜

点击上方“程序人生”,选择“置顶公众号” 第一时间关注程序猿(媛)身边的故事 Python 是军刀型的开源工具,被广泛应用于Web 开发、爬虫、数据清洗、自然语言处理、机器学习和人工智能等方...

csdnsevenn
2018/05/05
0
0
王者程序员整理的Python网络爬虫和web的系统学习路线图

最近很多小伙伴找小编咨询,如何系统的学习Python?相信这个论题应该困扰了许多想学习Python的人,今天小编给大家讲一下一个零根底的小白,应该如何体系化的学习Python编程语言,在学习的道路...

dcpeng
2018/09/06
0
0
Python show-me-code 完结&总结

关键字:python、爬虫、数据分析、语音识别 文末附源码链接 环境:python3.5 win7 pycharm 完成 show-me-code 练习册 中的python基础修炼题目,共有26道,web相关的两道后续更新。每个文件夹...

RookieDay
2017/11/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

为什么要在网站中应用CDN加速?

1. 网页加载速度更快 在网站中使用CDN技术最直接的一个好处就是它可以加快网页的加载速度。首先,CDN加速的内容分发是基于服务器缓存的,由于CDN中缓存了不少数据,它能够给用户提供更快的页...

云漫网络Ruan
39分钟前
7
0
亚玛芬体育(Amer Sports)和信必优正式启动合作开发Movesense创新

亚玛芬体育和信必优正式启动合作开发Movesense创新,作为亚玛芬体育的完美技术搭档,信必优利用Movesense传感器技术为第三方开发移动应用和服务。 Movesense基于传感器技术和开放的API,测量...

symbiochina88
50分钟前
4
0
创龙TI AM437x ARM Cortex-A9 + Xilinx Spartan-6 FPGA核心板规格书

SOM-TL437xF是一款广州创龙基于TI AM437x ARM Cortex-A9 + Xilinx Spartan-6 FPGA芯片设计的核心板,采用沉金无铅工艺的10层板设计,适用于高速数据采集和处理系统、汽车导航、工业自动化等领...

Tronlong创龙
50分钟前
4
0
好程序员Java学习路线分享MyBatis之线程优化

  好程序员Java学习路线分享MyBatis之线程优化,我们的项目存在大量用户同时访问的情况,那么就会出现大量线程并发访问数据库,这样会带来线程同步问题,本章我们将讨论MyBatis的线程同步问...

好程序员官方
56分钟前
6
0
IDEA 自定义方法注解模板

IDEA 自定义方法注解模板 1、使用效果 /*** 计算交易费用* @Author wangjiafang* @Date 2019/9/11* @param feeComputeVo* @return*/@PostMapping("/v1/fee_compute")public ApiResp......

小白的成长
56分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部