1 概述

Python是一门跨平台开源免费解释型高级动态编程语言,支持伪编译将Python源程序转换为字节码来优化程序和提高运行速度,支持使用py2exe、pyinstaller或cx_Freeze工具将Python程序转换为二进制可执行文件。

Python支持命令式编程(How to do)、函数式编程(What to do),完全支持面向对象程序设计,语法简洁清晰,拥有大量的几乎支持所有领域应用开发的成熟扩展库。

Python开发环境

默认编程环境IDLE

IDLE,Integrated Development and Learning Environment,集成开发和学习环境,是Python的集成开发环境。

在IDLE环境下,除了撤销(Ctrl+Z)、全选(Ctrl+A)、复制(Ctrl+C)、粘贴(Ctrl+V)、剪切(Ctrl+X)等常规快捷键之外,其他比较常用的快捷键如下表所示。

快捷键功能说明
Alt+p浏览历史命令(上一条)
Alt+n浏览历史命令(下一条)
Ctrl+F6重启Shell,之前定义的对象和导入的模块全部失效
F1打开Python帮助文档
Alt+/自动补全前面曾经出现过的单词,如果之前有多个单词具有相同前缀,则在多个单词中循环选择
Ctrl+]缩进代码块
Ctrl+[取消代码块缩进
Alt+3注释代码块
Alt+4取消代码块注释。
Tab补全单词,选中多行时可用于缩进

Python其他常用开发环境

  • Eclipse+PyDev
  • PyCharm
  • wingIDE
  • Eric
  • PythonWin
  • Anaconda3:Jupyter Notebook、Spyder
  • zwPython
  • VS Code

使用pip管理第三方包

pip是一个Python包安装与管理工具。

pip命令示例说明
pip download SomePackage[==version]下载扩展库的指定版本,不安装
pip freeze [> requirements.txt]以requirements的格式列出已安装模块
pip list列出当前已安装的所有模块
pip install SomePackage[==version]在线安装SomePackage模块的指定版本
pip install SomePackage.whl通过whl文件离线安装扩展库
pip install package1 package2 ...依次(在线)安装package1、package2等扩展模块
pip install -r requirements.txt安装requirements.txt文件中指定的扩展库
pip install --upgrade SomePackage升级SomePackage模块
pip uninstall SomePackage[==version]卸载SomePackage模块的指定版本

Python文件名

.py

Python源文件,由Python解释器负责解释执行。

.pyw

Python源文件,常用于图形界面程序文件。

.pyc

Python字节码文件,无法使用文本编辑器直接查看该类型文件内容,可用于隐藏Python源代码和提高运行速度。对于Python模块,第一次被导入时将被编译成字节码的形式,并在以后再次导入时优先使用“.pyc”文件,以提高模块的加载和运行速度。对于非模块文件,直接执行时并不生成“.pyc”文件,但可以使用py_compile模块的compile()函数进行编译以提高加载和运行速度。另外,Python还提供了compileall模块,其中包含compile_dir()、compile_file()和compile_path()等方法,用来支持批量Python源程序文件的编译。

.pyo

优化的Python字节码文件,同样无法使用文本编辑器直接查看其内容。可以使用“python –O -m py_compile file.py”或“python –OO -m py_compile file.py”进行优化编译。Python 3.5不再支持.pyo文件。

.pyd

一般是由其他语言编写并编译的二进制文件,常用于实现某些软件工具的Python编程接口插件或Python动态链接库。

Python代码规范

缩进

类定义、函数定义、选择结构、循环结构、with块,行尾的冒号表示缩进的开始。

python程序是依靠代码块的缩进来体现代码之间的逻辑关系的,缩进结束就表示一个代码块结束了。

同一个级别的代码块的缩进量必须相同。

一般而言,以4个空格为基本缩进单位。

注释

以#开始,表示本行#之后的内容为注释。

包含在一对三引号'''...'''或"""..."""之间且不属于任何语句的内容将被解释器认为是注释。

导入模块

每个import语句只导入一个模块,最好按标准库、扩展库、自定义库的顺序依次导入。

空格与空行

如果一行语句太长,可以在行尾加上续行符\来换行分成多行,但是更建议使用括号来包含多行内容。

必要的空格与空行:

  • 运算符两侧、逗号后面建议增加一个空格。
  • 不同功能的代码块之间、不同的函数定义之间建议增加一个空行以增加可读性。

检查代码规范性

可以使用pip来安装pep8工具,然后使用命令pep8 test.py来检查test.py文件中Python代码的规范性。pep8常用的可选参数有--show-source、--first、--show-pep8等等。

flake8结合了pyflakes和pep8的特点,可以检查更多的内容,优先推荐使用,使用pip install flake8可以直接安装,然后使用命令flake8 test.py检查test.py中代码的规范性。

也可以使用pip安装pylint,然后使用命令行工具pylint或者可视化工具pylint-gui来检查程序的规范性。