首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
第 1章 处理错误和寻求帮助
1.1 如何理解Python错误信息
1.1.1 检查回溯信息
1.1.2 搜索错误信息
1.2 借助linter 避免错误
1.3 如何寻求编程帮助
1.3.1 预先提供信息以避免反复补充
1.3.2 以实际问题的形式陈述问题
1.3.3 在合适的网站上提出你的问题
1.3.4 在标题中概述你的问题
1.3.5 说明代码的预期目的
1.3.6 包含完整的错误信息
1.3.7 分享全部代码
1.3.8 通过适当的格式化增强代码可读性
1.3.9 告诉帮忙者已经尝试过的方法
1.3.10 描述你的设置信息
第 2章 环境设置和命令行
2.1 文件系统
2.1.1 Python中的路径
2.1.2 主目录
2.1.3 当前工作目录
2.1.4 绝对路径和相对路径
2.2 程序和进程
2.3 命令行
2.3.1 打开终端窗口
2.3.2 使用命令行运行程序
2.3.3 使用命令行参数
2.3.4 在命令行中使用-c 运行Python代码
2.3.5 从命令行运行Python 程序
2.3.6 运行py.exe 程序
2.3.7 在Python 程序中运行命令
2.3.8 使用Tab 补全命令减少输入量
2.3.9 查看历史命令
2.3.10 使用常用命令
2.4 环境变量和PATH
2.4.1 查看环境变量
2.4.2 使用PATH 环境变量
2.4.3 更改命令行的PATH 环境变量
2.4.4 在Windows 上将文件夹永久添加到PATH
2.4.5 在macOS 和Linux 上将文件夹永久添加到PATH
2.5 不借助命令行运行Python 程序
2.5.1 在Windows 上运行Python程序
2.5.2 在macOS 上运行Python 程序
2.5.3 在Ubuntu Linux 上运行Python程序
第3章 使用Black 进行代码格式化
3.1 让程序员招人烦的错误做法
3.2 风格指南和PEP 8
3.3 水平间距
3.3.1 使用空格进行缩进
3.3.2 行内间距
3.4 垂直间距
3.4.1 垂直间距示例
3.4.2 垂直间距的最佳实践
3.5 Black:毫不妥协的代码格式化工具
3.5.1 安装Black
3.5.2 在命令行中运行Black
3.5.3 对部分代码禁用Black
当前位置:
首页>>
技术小册>>
Python编程轻松进阶(一)
小册名称:Python编程轻松进阶(一)
### 3.2 风格指南和PEP 8 在Python编程的世界里,代码不仅仅是实现功能的指令集合,它也是一种交流工具,通过清晰的表达来传达思想。为了维护代码的可读性、一致性和可维护性,Python社区制定了一系列编码规范和风格指南,其中最为广泛接受和遵循的是PEP 8(Python Enhancement Proposal 8)。本章节将深入探讨PEP 8的核心原则,并介绍如何在实际编程中应用这些风格指南,以促进代码质量的提升。 #### 3.2.1 认识PEP 8 PEP 8,全称是“Style Guide for Python Code”,是Python官方推出的一套编程风格指南,旨在提高Python代码的可读性和一致性。它并非强制性的规则,但在Python社区中,遵循PEP 8已成为一种约定俗成的规范,大多数开源项目和大型企业都遵循这一指南。PEP 8涵盖了代码布局、命名约定、注释风格等多个方面,下面我们将逐一介绍。 #### 3.2.2 代码布局 **缩进** - 使用4个空格进行缩进,禁止使用Tab键进行缩进,以保持代码在不同编辑器下的显示一致性。 - 缩进级别应保持一致,不得混用空格和Tab。 **行宽** - 每行代码的长度限制在79个字符以内,以适应大多数终端和编辑器的显示宽度。对于特别长的表达式,可以使用圆括号、方括号或花括号进行换行。 **空行** - 顶级定义(如函数、类)之间应使用两个空行分隔。 - 类定义内部的方法之间使用一个空行分隔。 - 可以在逻辑相关的代码块之间添加空行以提高可读性。 **导入语句** - 导入语句应位于文件的顶部,且应该按以下顺序分组: 1. 标准库导入 2. 相关第三方库导入 3. 本地应用/库特定导入 - 每个分组内部应根据字母顺序排序。 **导入别名** - 仅在必要时使用导入别名,且应使用`as`关键字明确指定别名。 #### 3.2.3 命名约定 **模块和包** - 模块名应简短、小写,可以使用下划线以提高可读性。 - 包名也应遵循小写字母加下划线的命名规则,但通常更长,以反映其命名空间内的内容。 **类** - 类名应使用驼峰命名法(CamelCase),即每个单词的首字母大写,不使用下划线。 - 私有类属性应以单下划线开头。 - 特殊的双下划线(magic methods)如`__init__`、`__str__`等是Python的内置方法,遵循特定规则。 **函数和方法** - 函数名和方法名应使用小写字母和下划线(snake_case)的命名方式。 - 私有函数或方法应以双下划线开头,后跟单下划线和名称(避免与特殊方法冲突)。 **变量** - 变量名应简短且具描述性,遵循小写字母和下划线的命名规则。 - 常量(如PI、MAX_ITERATIONS)应全部大写,并使用下划线分隔单词。 #### 3.2.4 表达式和语句 **复合语句** - 在if、for、while等语句后,冒号`:`应紧跟在条件或循环语句的末尾,并独占一行。 - 随后的代码块应缩进。 **比较操作符** - 总是使用`is`或`is not`来比较对象身份,使用`==`或`!=`来比较值。 - 链式比较(如`a < b < c`)在Python中是合法的,可以提高代码的可读性。 **默认参数值** - 默认值应该是不可变对象,如None、True、False、数字或元组(如果元组仅包含一个元素,则需要在元素后加逗号)。 - 避免使用可变对象(如列表、字典)作为默认参数值,因为它们会在函数定义时创建一次,并在后续调用中共享。 **注释** - 注释应简洁明了,解释代码的目的而非其如何工作。 - 块注释应使用三个双引号`"""`或三个单引号`'''`包围,并位于被注释代码的上方或旁边。 - 对于简单的代码行,可以使用行尾注释(#)来说明其意图。 #### 3.2.5 编码风格的实际应用 将PEP 8的风格指南应用到实际编程中,不仅可以提升代码的可读性,还能促进团队间的协作效率。以下是一个遵循PEP 8规范的简单Python函数示例: ```python def calculate_average(numbers): """ Calculate the average of a list of numbers. Args: numbers (list of float): A list of numbers to calculate the average. Returns: float: The average of the numbers. """ if not numbers: # 检查列表是否为空 return 0 return sum(numbers) / len(numbers) # 使用示例 numbers = [1, 2, 3, 4, 5] average = calculate_average(numbers) print(f"The average is: {average}") ``` 在上述示例中,函数名`calculate_average`采用了小写字母加下划线的命名方式,参数和返回值通过文档字符串(docstring)清晰说明,代码布局符合PEP 8的要求,包括适当的缩进、空行使用以及注释风格。 #### 3.2.6 工具支持 为了帮助开发者自动检查并修正代码风格问题,Python社区提供了多种工具和插件,如`flake8`、`pylint`、`black`等。这些工具可以集成到开发环境中,自动检查代码是否符合PEP 8规范,并提供修正建议。 - **flake8**:一个集成了多种linter(如pyflakes、mccabe、pep8等)的工具,用于检查代码风格和质量。 - **pylint**:一个高度可配置的静态代码分析工具,不仅可以检查代码风格,还能发现潜在的逻辑错误。 - **black**:一个“不妥协”的Python代码格式化工具,它自动按照PEP 8(以及一些自己的意见)格式化你的代码,无需手动配置。 通过结合使用这些工具,开发者可以更加高效地维护代码质量,确保代码风格的一致性。 #### 结语 PEP 8作为Python编程风格的权威指南,对于提升代码质量、促进团队协作具有重要意义。通过遵循PEP 8的规范,我们可以编写出更加清晰、一致、易于维护的Python代码。在实际编程中,建议开发者将PEP 8作为编码的参考标准,并利用现有的工具来辅助检查和修正代码风格问题。随着对PEP 8的不断实践和深入理解,你将能够编写出更加优雅和高效的Python代码。
上一篇:
3.1 让程序员招人烦的错误做法
下一篇:
3.3 水平间距
该分类下的相关小册推荐:
实战Python网络爬虫
Python合辑4-130个字符串操作示例
Python3网络爬虫开发实战(上)
Python与办公-玩转Excel
Python合辑7-集合、列表与元组
Python合辑14-面向对象编程案例(下)
Python合辑10-函数
Python合辑11-闭包函数
Python合辑9-判断和循环
机器学习算法原理与实战
Python爬虫入门与实战开发(下)
Python合辑1-Python语言基础