satan 通过 Google 阅读器发送给您的内容:
可从此处完成的操作:
- 使用 Google 阅读器订阅Solidot
- 开始使用 Google 阅读器,轻松地与您喜爱的所有网站保持同步更新
其实我也不知道python怎么入门,由我来写这个真的不是很合适。我学python是直接找了dive into python来看。然后照着写了几个例子。大概两天后,就能磕磕绊绊的上路了。就好像拿筷子,都不记得怎么学会的拿筷子,怎么来教人呢?
不过最近在python-cn的列表里面,我大概连续数周都持续看到"python入门看哪本教程比较好",实在是不堪其扰。干脆就写个简单的guide,有心的人自己看。没心的——那我也没办法了。
首先,你要了解一个事情。很多你不会的东西并不属于python。例如你不知道网络通讯的流程,你不知道文件的权限和打开标志用法,你不知道fork和stdin/stdout的关系。这些python教不会你。如果你缺乏这些和语言/库无关的相关知识,请自行补课。如果你缺乏计算机基础理论,请自行补课。
因此不要随便给我发邮件/留言/咨询,为什么这个问题在python里无法解决。为什么python无法所见即所得,为什么python无法热部署,为什么python无法用于嵌入式开发。在问这个问题之前,请先确认"这是一个python的问题"。例如GIL,或者脑残lambda。如果你不确定,请自己搜索一下相关的文章,确认一下。在提问前,看看"提问的智慧"。如果你确实搜过了,找不到,那就问吧,没办法。
在网络上,python入门的两大基础书籍分别是(后面有朋友补充了一本,我也加上):
后面基本就是看python-doc,我推荐你跳过一堆有的没的,直接看Library Reference。python本身就是易读性极强的代码,文档又相当漂亮,内置库又全。大部分情况下,python-doc都应当能解决你的问题。
web是程序员的一大去向。python程序员入门必须要过的一个框架就是django。不要纠结了,django在python社区中名气太大,用的人太多。因此入门材料是最多的,社区最大,门槛最低。如果你要入门web,必然从django开始。在不熟悉python的情况下,我不推荐你贸然从其他框架开始入门。
当然,如果你已经熟悉python了,考虑入门web框架,可以参考专精一节。
python下说到爬虫开发,入门首选Scrapy。原因和上面一样,社区最大,用的人最多。好不好用就见仁见智了。反正我的所有爬虫框架都是用自己基于gevent写的库。
python的ui框架也很多,很复杂。同样,如果是入门,我建议从qt的两个框架,pyqt和pyside开始入门。关于这两家的恩怨我就不多废话了。
所谓专精,是指使用python在特定工作上。我们基本分为几个领域。
说到网络,基本就是除web外。
python web框架的一大特点,是容器/框架/ORM/template可以分开自己玩。
注意,容器和框架是两码事情。容器是python web运行的环境,框架是解析环境的玩意。两者间一般都使用wsgi接口进行连接。这是python的标准做法,fastcgi/scgi也会被转换为wsgi进行连接。但是也不是没有其他选择。一般我们有以下模式:
下面是wsgi接口的容器。wsgi的优点在于我们可以在这些容器上运行任意一款支持wsgi的框架。
建议的部署模式是,用apache的,去mode_wsgi。用nginx的,去uwsgi。用GAE的,直接可用。其他,通通转发。
你可以参考飞龙的这篇文章,里面介绍了数种框架。你可以通通玩一下,反正也不麻烦,然后选择一种最适合自己的玩意。
python中有一种不得不提的玩意就是Zope。这个东西我不知道该如何评价,有兴趣的自己看吧。
ORM:python的ORM系统比较单一,一般都是sqlalchemy。这个框架非常强大,但是很消耗资源。有兴趣的可以去官网上自己了解。偶尔也见用SQLObject的,不多。
ORM的另一大选择是ZODB,不过用的比较少。希望了解的自己去咨询老潘。
python wiki上有篇文章提到了python template engine的分类和列表。作为专精,我建议你至少玩一下string.Template,webhelpers,mako,jinja2,Genshi这几个玩意。
关于python爬虫的进阶,就比较不好说。我正在写一篇长篇blog,介绍python爬虫的种种。不过至少来说,你需要了解以下几个东西:celery,beautifulsoap,lxml,selenium,phantomjs,pyquery。
gui库的列表可以看这里,其中我推荐你看一下玩玩的有:PyGtk,TkInter,WxPython,Glade,pygame。
不用废话,你可以看这篇文档用Python做科学计算。作者出书了,你可以支持一下。
那必然要提到的就是pil,python imaging library。另一样要介绍的是pydot,pygraph或者pygraphviz。这不是图形库,准确的说,应当是图论库。他可以使用graphviz将图论结构转换为图像。
首先,你应当去看沈游侠在某次cpug聚会上的讲话Python 编程艺术,这是python程序员进阶的必读。不过很可惜,slide是高桥流的,本身不是为了让你看内容而出的。而当时的演讲又没有录像(如果有的话,请给我一份拷贝,我会问沈游侠能不能放出,找空间,搞定相关问题,感谢),因此理解上相当困难。不过这里的每一句话都相当有道理,是数十年程序经验的总结。
另外,作为进阶,你可以适当的看python3的一些内容。Dive Into Python 3 中文版。还有pypy和cython。
作为python进阶人士,你一定要在手头备一份常用发行的源码,不要求小版本一致,至少大版本一致(2.7.x,最后一位可以不对齐)。适当的阅读源码,尤其是Objects目录。经常重新阅读python-doc。
中国的医疗改革,公认是失败的。
高昂的医疗费、稀缺的医疗资源、紧张的医患关系,严重影响人民的生存质量,使得普通老百姓"望医却步"。
(图片说明:2012年8月22日的北京协和医院挂号大厅,来源《中国消费者报》)
最近,我在阅读四卷本的《朱镕基讲话实录》。
第二卷有一篇1997年10月27日的讲话,题为《基本医疗保障要低水平、广覆盖》。
读了这篇讲话,我算是彻底明白了,中国医疗改革为什么会失败,一切都是因为15年前的决策。
一、关于医疗保障的总体水平
财政不宽裕,只能向人民提供低水平的医疗保障,这是可以理解的。但是没想到,这篇讲话明确说了,医疗保障只能是最低水平。
"在我国目前的国情下,任何社会保险制度都只能有一个最基本的保障水平,既不能向美国、欧洲看齐,也不能向一些东南亚国家看齐。我们没有这个能力,无论如何做不到。中国目前还建立不起一个完善的社会保障制度,没有钱呀!"
"在我国建立社会保障制度最重要的一点就是要符合社会主义初级阶段的国情,只能确定一个最基本的、低标准的保障水平。"
"标准搞高了,实际上落实不了,最后就会变成国家的负担,增加财政赤字。与其定一个比较高而实际上收不到钱的标准,还不如先不要提高这个标准。"
就是一句话,财政不能在医疗保障上多花钱。
二、关于大病支出
大部分的医疗费,都花在大病上面。作为对策,讲话也明确说了,大病支出是封顶的,财政不能多花钱。
"大病花统筹基金要有个封顶线,原则是尽量保证不要超支。经过测算,确定了一个社会统筹医疗基金最高支付限额。要说明总共就这么多钱,每个人只能花一定的限额,超过这个限额,没有办法支付;否则,如果无限制地从统筹基金里拿钱,就会难以为继。封顶要讲出去,各地都要下这个决心; 否则,医疗保险搞不下去。有的地方不敢封顶,那就只能自己背包袱,中央财政没钱可补。"
三、关于低收入者的医疗保障
既然大病支出是封顶的,那么超支的部分只能自费。对于那些付不起的人,讲话也考虑到了。
"亏损企业的职工超出基本医疗保障水平以外的医疗需求怎么办呢?只能通过社会救济。我们也要建立慈善机构,提倡搞社会捐赠。我们要号召那些收入较高的工商界人士,在力所能及的范围内搞一点捐献,参加一些慈善事业。"
四个字,"祝君好运"。
四、关于公务员的医疗保障
"机关与企业的医疗保险相比要有不同的办法。当前机关干部的工资水平比较低,在制订医疗保险方案时,不能不考虑这个现实。机关与企业缴纳基本医疗保险金的标准应该一样,机关干部超出基本医疗保障水平以上的必需的医疗费用要由财政拿钱。以往国家为机关干部付出的医疗费用不能减少,而且还要逐步有所增加。"
财政可以为这部分人出钱。
五、关于卫生系统的改革
这是最匪夷所思的部分:医疗人员太多了,必须下岗一部分人。
"卫生系统与国有企业一样,也存在人浮于事的情况。现在,城市里设了这么多的医疗机构(包括企业的医疗机构),供给大大超过需要,资源相对过剩,必须进行结构调整。要实施区域卫生规划,实现资源优化配置与合理利用,减人增效。多余的人员要下岗分流,否则,搞那么大的摊子,养那么多的人,医疗费用肯定贵得不得了。"
原来,医院是财政出钱的,少一点医生,财政可以少出一点钱。
六、关于医疗改革的前景
15年前决策者的预测,不评论了。
"如果卫生系统减一点人,成本降低了,医疗费用就会下降,医疗保障水平也就提高了。"
(完)