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()

 

posted @   新兵蛋Z  阅读(46)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示