python——代码格式化
风格与PEP8
编写可读代码的一种简单方式是遵循风格指南,它概述了软件项目应该遵循的一组格式化规则。Python改进提案(Python Enhancement Proposal 简称PEP8)就是由Python核心开发团队编写的这样一种风格指南。
PEP8甚至还建议:知道什么时候应该不一致——风格指南的建议并非放之四海而皆准。如果产生困惑,请依照你自己认为最好的判断。
Black
它改变自PEP 8 风格指南。pycharm安装black连接
1. 会自动把缩进Tab替换为4个空格
2. 会自动在逗号后插入一个空格,并删除逗号前面的空格。
3. 会自动删除句点前后的空格
4. 会自动删除函数、方法名称、变量名、左括号之间的空格
5. 会自动删除左括号前和又括号后的空格
6. 会自动在代码结尾和注释开头添加两个空格
7. 会自动添加类、方法、函数之间的回车
8. 会自动把一行多语句,更改为分隔独立行
9. 会自动将代码中的所有单引号更改为双引号,除非有双引号、单引号复用情况。
10.将三个单引号的注释,更改为三个双引号注释。
11. 默认限制每行最多88个字符
PEP8建议按照以下原则和顺序导入语句:
1. python标准库模块,如math、os、sys
2. 第三方模块,如selenium、requests、django
3. 作为程序一部分的本地模块
命令行中的使用
#安装Black
python -m pip install --user black #windows
python3 -m pip install --user black #linux
#运行black
python -m black test.py #windows
python3 -m black test.py #linux
#如果PATH环境变量已经支持直接运行Black
black test.py
#想要使文件夹内所有文件运行Black
python -m black C:/test
#Black help
python -m black --help
#调整行长为120个字符
python -m black -l 120 test.py
#不改变引号类型
python -m black -S test.py
#不改变文件内容,提前查看修改内容
python -m black --diff test.py
# -需要更改的项
# +更改完成项
#禁用Black某一段
# fmt: off
test = 111
# fmt: on
格式化标准
水平间距
对于可读性而言,空白具有跟代码相同的重要性。空格可以将代码的不通部分彼此分割,使其更容易识别。水平间距,即再一行代码中放置空格,包括行首的缩进
-
空格缩进
可以使用一个空格,两个空格或Tab来进行实现缩进功能。但最佳方案是使用空格,而非使用Tab。因为他们的表现存在差异,空格使用显示为单个空格的字符串。但是Tab会显示为一个转义字符或者\t,它的表现具有不确定性。 大多数代码编辑器和IDE再按下Tab键时会插入4个或8个空格字符,而不是一个Tab制表符。
不能在同一个代码块中混用Tab和空格。Python3直接会拒绝运行这样缩进的代码。
-
运算符和标识符
blanks = blanks[:i] + secretWord[i] + blanks[i + 1 :] #YES
-
分隔符后面加空格
def test(a, b, c): #这样
print(111)
print(2222)
test()
list = [ 10, 234, 332, 12.2 ] #这样
-
句点前后添加空格
尽管python允许,但不要。
'Hello world'.upper()
-
不在函数、方法或容器后添加空格
print('Hello world') #这样
print ('Hello world') #不行
spam[2] #这样
spam[0:3] #这样
spm['name'] #这样
spam [2] #不行
spam [0:3] #不行
spm ['name'] #不行
-
不要在左括号前和右括号后添加空格
print('Hello world') #这样
print( 'Hello world' ) #不行
-
行末注释前添加两个空格
print('Hello world') # 这样
print( 'Hello world' )#不行
垂直间距
垂直间距指代码行之间的空白行间隔。
black中,表示在类中的方法之间使用一个回车进行分割。
类和方法之间使用两个回车进行分割。
Black无法决定函数、方法或者全局作用域中的空行位置。哪些行应该聚合成一个整体取决于程序员的主观判断。
class Test(object):
def test1(self):
print(1111)
def test2(self):
print(2222)
def test3():
print(333)
垂直间距的最佳实践
跟使用逗号一个,分号前不要有空格,分号后要有一个空格。
#可以使用分号写在同一行,但不建议使用一行书写
print('test111')
test=input()
print('test111'); name=input()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)