Python

返回“程序设计语言”

Python

Python入门教程

已经过时的教程(基于已经淘汰的Python 2):

Python解释器

  • CPython http://python.org/
  • Stackless Python http://www.stackless.com/
  • Ironpython (Python for .Net) https://ironpython.net/
  • Jython (Python for Java) https://www.jython.org/
  • PyPy
  • Hylang A dialect of Lisp that’s embedded in Python

Python开发环境

Python语法

代码风格

参考资料

Python库

标准库

GUI Toolkit

  • wxpython http://www.wxpython.org/
  • PyGtk
  • Kivy 基于OpenGL ES的移动端、桌面端GUI开发库
  • 使用PyQt编写QT图形界面程序 http://www.riverbankcomputing.co.uk/pyqt/
  • PyQT vs PySide2

DB

网络

  • uvloop: asyncio + libuv + Cython,再配上httptools做HTTP parser,从benchmark看起来性能非常强劲。

Web 开发

Windows

  • pywin32 http://sourceforge.net/projects/pywin32/
  • comtypes http://starship.python.net/crew/theller/comtypes/
  • python 与 COM Advanced Python and COM
  • 使用_winreg模块操纵windows注册表
  • 将python程序打包成windows下可以执行的exe文件:使用py2exe模块
  • 在.net平台上使用python:IronPython

Mac

多媒体

  • 图像获取:linux平台下使用sane模块,Windows平台下使用twain模块
  • 图像处理PythonImageLibrary中文手册
  • 通过ffmpeg处理视频、音频 https://github.com/kkroening/ffmpeg-python
  • PyDUB:在python中直接处理音频 https://github.com/jiaaro/pydub

游戏

  • pygame: http://www.pygame.org/
  • panda3d: http://www.panda3d.org/
  • renpy: http://www.renpy.org/wiki/renpy/Home_Page
  • pyopengl http://pyopengl.sourceforge.net/

字符串

  • Unicode Howto
  • http://docs.python.org/lib/module-re.html
  • http://www.amk.ca/python/howto/regex/
  • Mastering Regular Expressions 2nd Edition, By Jeffrey E. F. Friedl
  • Click 命令行参数处理

数据处理

其它

  • python-ldap http://www.python-ldap.org/
  • 读取excel:用xlrd包。把excel转成csv,使用csv库操作。
  • 加密:Python Cryptography Toolkit http://www.amk.ca/python/code/crypto
  • Spring Python: 为什么Python不需要像Spring这样的东西?
  • PLY Python Lex-Yacc

Python的字符编码处理

对于中文用户,特别需要关注Python的编码技术. 列举一些常用的技巧。

chr(i): 将一个0到255的整数转换为一个字符.
ord(c): 返回单个字符c的整数顺序值.普通字符返回[0,255]中的一个值,Unicode字符返回 [0,65535]中的一个值
unichr(i): 将一个0到65535的整数转换为一个Unicode字符
  • 代码中的编码设置,应该在代码最初两行内包含:
# -*- coding: UTF-8 -*-
  • 获得/设置系统的缺省编码
sys.getdefaultencoding()

sys.setdefaultencoding('utf-8')
  • 获得文件系统的文件名的编码
sys.getfilesystemencoding()
  • 获得当前终端的输入、输出编码
      sys.stdout.encoding

      sys.stdin.encoding
  • 编码转换(先转换为unicode,再转换为具体的编码),有两种方法:
      unicode('abc', 'mbcs').encode('utf-8')

      'abc'.decode('mbcs').encode('utf-8')