Python FAQ from newsmth.net

Python FAQ from newsmth.net

本FAQ内容包含:
0.Python 资源索引
1.Python的版本和下载方式
2.推荐书籍
3.推荐站点
4.Python有什么IDE
5.哪有Python电子书
6.使用easy_install安装第三方程序包
7.Python需要编译么?如何做成.exe文件
8.如何在代码中使用中文
9.Python有哪些图形库
10.一些网址
11.filter, map, reduce, zip函数
12.访问GAE,修改hosts文件的方法

0.Python 资源索引
  http://wiki.woodpecker.org.cn/mo ... on/LpyAttach2ResIdx
  大多数资料都在上面了,目录如下:
     1. Python 资源索引
         1. Py 语言自身
         2. Py 文本处理
         3. Py 数据库应用
         4. Py 网络应用
         5. Py 嵌入系统
         6. Py 多媒体支持
         7. Py 应用扩展
         8. Py 科学计算
         9. Py 行业应用
        10. Py 教育支持
        11. Py 集锦资源
     2. 资源回收

1.Python的版本和下载方式
A.至2008年10月,Python最新的版本为2.6。Python3000尚处于测试状态。Python的官方下载地址是:
http://www.python.org/download/

2.推荐书籍:
A.1、《A Byte of Python(简明python教程)》
     http://www.byteofpython.info/language/chinese/index.html
  2、《Dive into Python(Python研究)》
     http://www.woodpecker.org.cn/diveintopython/index.html
  3、《Learning Python》
  4、《Programming Python》
  第一本书非常简短,也有中文译本“简明Python教程”,是想速成(几小时)者的首选。另外在http://www.python.org/doc
很多官方的文档和教程,非常不错。

3.推荐站点:
A.1、啄木鸟社区
     http://www.woodpecker.org.cn/
  2、Python@Newsmth
     (wahahaha~~~)
  3. 中文用户组
     CPUG:
       http://python.cn
       [email]python-chinese@lists.python.cn[/email] (邮件列表) //已经停止服务,转CPyUG吧。
     CPyUG: 华蟒用户组
       https://groups.google.com/group/python-cn
     PyTUG: Python 語言台灣使用者群組
       https://groups.google.com/group/pythontw
  4. 中文论坛:
     1. Python@CU
        http://bbs.chinaunix.net/forumdisplay.php?fid=55

4.Python有什么IDE
A.Python官网有一份IDE列表,很全:
http://wiki.python.org/moin/IntegratedDevelopmentEnvironments
  如果看了上面的列表还是不知道自己该选哪个,推荐看置底的“Python IDE比较与推荐”

5.哪有Python电子书?
A.精华区x-5收录了一些经典的电子书。下载请用web方式。
  强烈推荐开放图书计划:
     http://code.google.com/p/openbookproject/ 聚集大量的Python技术图书.

另外这两个地方有很多python的电子书:
http://www.longtengwang.com/Soft/yiyong/Python/Index.html
http://www.pythonid.com/html/wendangxiazai/index.html
  想看纸质书,在书店里没有找到,那么最简单的办法是去淘宝网。

6. 使用easy_install安装第三方程序包:
A.参考:http://blog.chinaunix.net/u1/42287/showart_405102.html
        http://www.ibm.com/developerworks/cn/linux/l-cppeak3.html

  1. 安装
     wget -q http://peak.telecommunity.com/dist/ez_setup.py
     sudo python ez_setup.py
  2. 使用
     sudo easy_install CherryPy
     sudo easy_install -Z web.py-0.21.tar.gz

B. 想看看有什么第三方程序包:http://pypi.python.org/pypi

7.Python需要编译么?如何做成.exe文件?
A.Python不需要用户专门去编译它,第一次运行时,在运行过程中,Python的解析器会自动将代码编译为.pyc。一般来讲,运
行结束后不会自动删除.pyc文件。
  在Windows下,可以用py2exe等工具将代码编译为.exe文件。原理是py2exe会将必要的python解析器也打包进去。所以做成的
.exe有几M,如果有图形界面,就会有十几M,而且运行速度不会有提升。

8.如何在代码中使用中文
A.在Python2.5或之前的版本中,代码里默认是不能有中文的,包括注释。解决方法是在代码一开头加上:
# -*- coding: gbk -*-

# -*- coding: utf-8 -*-

#coding=utf-8
  具体选哪一种看具体情况。一般来讲,如果不是网络编程,统一用utf-8就OK了,包括与MySQL的交互也可以用utf-8搞定。如
果是网络编译,特别是与FTP打交道,推荐使用gbk,可以省去很多麻烦。
  注意本法没有涉及不同编码的转换。

9.Python有哪些图形库
A.常用的有tk/tcl, PyGtk,PyQt和wxPython。都是跨平台且开源的。第一个是Python自带的,但比较难用且难看。PyQt和
wxPython都漂亮好用且文档/demo很棒,目前来看PyQt4比wxPython更胜一畴。

10. 一些网址
Python:              www.python.org
ActivePython:        www.activestate.com
Stackless Python:     www.stackless.com
IronPython:          www.ironpython.com
PyPy:                pypy.org
JPython:             www.jpython.org

Django:              www.djangoproject.com
Mod_Python:          www.modpython.org
Webware:             www.webwareforpython.org
CherryPy:            www.cherrypy.org
Web.py:              webpy.org
Zope:                www.zope.org
Turbogears:          www.turbogears.org
Google AppEngine:    http://code.google.com/appengine
Twisted:             http://twistedmatrix.com
Beautiful Soup:      http://crummy.com/software/BeautifulSoup
PythonWeb:           www.pythonweb.org
JabberPy:            http://jabberpy.sourceforge.net
pyGoogle:            http://pygoogle.sourceforge.net
libgmail:            http://libgmail.sourceforge.net
pyExpect:            http://pexpect.sourceforge.net

MySQLdb:             http://sourceforge.net/projects/mysql-python
PyGreSQL:            www.pygresql.org
psycopg:             www.initd.org/pub/software/psycopg
cx_Oracle:           www.cxtools.net
SQLAlchemy:          www.sqlalchemy.org

scipy:               www.scipy.org
NumPy:               http://numpy.scipy.org
numarray:            www.stsci.edu/resources/software_hardware/numarray
matplotlib:          http://matplotlib.sourceforge.net

WxPython:            www.wxpython.org
PyGtk:               www.pygtk.org
PyQt:                http://trolltech.com/products/qt
Tkinter 3000:        http://effbot.org/zone/wck.htm
PIL:                 www.pythonware.com/products/pil
pyOpenGL:            http://pyopengl.sourceforge.net

pySoundic:           http://pysonic.sourceforge.net
pyMedia:             http://pymedia.org
FMOD:                http://www.fmod.org
pyMIDI:              http://www.cs.unc.edu/Research/assist/developer.shtml

Python Documentation Online: http://pydoc.org, http://docs.python.org
Python-cn:                   http://python.cn
Pythonic:                    http://www.woodpecker.org.cn
The Daily Python-URL:        http://www.pythonware.com/daily/index.htm
Python Package Index:        http://pypi.python.org
Planet Python:               http://www.planetpython.org
Pythonite:                   http://www.pythonite.org
Useless Python:              http://www.uselesspython.com
Python Cookbook:             http://aspn.activestate.com/ASPN/Cookbook/Python
Python Sidebar:              http://www.edgewall.org/python-sidebar
Python Source:               http://pythonsource.com

11.filter, map, reduce, zip函数
1. filter(function, sequence) 返回序列,为原序列中能使function返回true的值
    >>>a=[1,2,3,4]
    >>>filter(lambda x:x%2, a)
    [1, 3]
2. map(function, sequence, [sequence...]) 返回序列,为对原序列每个元素分别调用function获得的值.
    可以传入多个序列,但function也要有相应多的参数,如
    map(lambda x,y,z:x+y+z,range(1,3),range(3,5),range(5,7))
    计算过程为
    1+3+5=9
    2+4+6=12
    返回[9,12]
3. reduce(function,sequence,[init])
    返回一个单值为,计算步骤为 :
      * 第1个结果=function(sequence[0],sequence[1])
      * 第2个结果=function(第1个结果,sequence[2])
      * 返回最后一个计算得值
      * 如果有init,则先调用function(init,sequence[0])
      * sequence只有一个元素时,返回该元素,为空时抛出异常.
    如 reduce(lambda x,y:x+y,range(3),99) 的计算为
    99+0=99 => 99+1=100 => 100+2=102
    返回102

    注:实际使用中用内建函数sum来完成这个累加更合适,如这里等价sum(range(3),99)
4. zip用于多个sequence的循环
    questions=['name', 'quest', 'favorite color']
    answers=['lancelot', 'the holy grail', 'blue']

    for q, a in zip(questions, answers):
        print 'What is your %s ? It is %s.' % (q,a)
    输出:
    What is your name ? It is lancelot.
    What is your quest ? It is the holy grail.
    What is your favorite color ? It is blue.

12.访问GAE,修改hosts文件的方法
Shell:~/dev/AppEngine/google_appengine/n23 >: tail -n 3 /etc/hosts
209.85.171.118    n23.appspot.com
64.233.189.99   appengine.google.com
#203.208.35.100  appengine.google.com
Shell:~/dev/AppEngine/google_appengine/n23 >:

我想学习python,能给点建议吗?觉得怎么开始比较合适