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来检查程序的规范性。