代码5分钟,BUG两小时?3分钟轻松掌握 Python代码规范!

Time will tell.

1、PEP8

PEP 是 Python Enhancement Proposals 的缩写,直译过来就是「Python 增强建议书」也可叫做「Python 改进建议书」,说的直白点就是 Python 相关的一些文档,主要用来传递某些信息,这些信息包括某个通知亦或是某个新的规范。关于更深层次的概念,大家有兴趣的可以自行去了解。

PEP 后面的数字从0开始一直累加,不同的数字代表不同的文档,我们今天介绍的是 PEP8,这个文档主要是用来规范 Python 代码的写法。

2、常用规范标准

PEP8 里面有很多规范,今天主要分享以下一些比较常用的规范:


1、缩进

我们知道在写 if条件、for循环、while循环、函数等语句时都是需要缩进的,正常来说缩进只要有缩进空格就行,具体缩进几个都行,所谓的无规矩不成方圆,想象一下,你习惯缩进3个,我习惯缩进5个,彼此交换代码的时候,那代码看起来是有多乱。为了避免这种局面的出现,PEP8 就建议缩进统一用4个空格。

# 建议这样if a > b: print("a is max")# 不建议这样if a > b: print("a is max")

还有尽量不要使用 Tab 键代替空格。


2、最长字符

Python 中一行的字符数限制为79个,但是有的时候会超过79,这个时候我们就需要进行换行,在换行的时候优先使用小括号,中括号以及大括号中的隐式续行方式,而不是使用反斜杠进行续行。比如下面的运算符遇上换行符中的例子。

当我们使用括号进行续行时,就涉及到不同行与行的对齐情况。

在多行结构中右括号可以与内容对齐单独起一行作为最后一行的第一个字符。

my_list = [ 1,2,3, 4,5,6 ]

或者也可以与多行结构的第一行第一个字符对齐。

my_list = [ 1,2,3, 4,5,6]


3、运算符遇上换行

有的时候多个变量名进行运算,在一行放不下时,这个时候就需要换行,那么当运算符遇上换行时我们该怎么换呢?建议在运算符的前面进行换行。

# 建议这样income = (income1 + income2 - cost1 - cost2)# 不建议这样income = (income1 + income2 - cost1 - cost2)


4、空白行

函数和类的定义,前后用两个空行隔开,这个就类似于我们在 word 里面编写文档,段前段后留空行。

在前面的举例中,建议这样和不建议这样就可以当作两个函数,这些函数之间是留两空白行。


5、空格

合适的空格会增加可阅读性,比如英文和中文之间要留有一个空格,这样看起来会相对比较舒服。在 Python 代码中亦是如此。但是空格不可滥用。

建议在二元运算符两边加一个空格:如赋值(=),增量赋值(+=,-=),比较(==,<,>,!=,<>,<=,>=,in,not,in,is,is not),布尔(and, or, not)。

# 建议这样a = 1a = 1+2a > b# 不建议这样a=1a=1+2a>b

但是不建议在小括号,中括号或者大括号之后;逗号、分号或者冒号之前添加空格。

# 建议这样np.array([1,2,3])# 不建议这样np.array( [1,2,3] )np.array([1 ,2 ,3])

在给某个函数参数传入参数值时,不建议使用空格。

# 建议这样plt.label(label="test_title")# 不建议这样plt.label(label = "test_title")


6、注释

代码注释可以帮助我们很快的理清代码,但是前提是注释写的够好够清晰,要不然不仅不会起到帮助的作用,反而会扰乱视线。关于注释主要有如下规则:

注释应该是完整一句话,如果一个注释是一个短语或简短的一句话,第一个单词应该大写。

如果注释很短,结尾的句号可以省略。块注释一般由完整句子的一个或多个段落组成。并且每句话结束都有个句号。

行内注释是与代码写在同一行的注释,行内注释要和代码保留至少两个空格分隔。注释由#和一个空格开始。

x = max(a,b) # select big one


7、模块导入

我们知道 Python 中有很多现成的模块可以供我们使用,在使用之前我们需要对模块进行导入,导入模块的时候我们也需要遵循相应的规则。

同时导入多个库的时候,建议分开不同的行进行导入。

# 建议这样import pandasimport numpy# 不建议这样import pandas,numpy

且导入模块的代码总是位于代码的最开始部分,在模块注释和文档字符串之后,在模块的全局变量与常量之前。


8、命名规范

在 Python 里面会涉及到很多名字,模块名、变量名、函数名、类名。这就和我们人名字一样,都是有一定讲究的。

不要以 Python 中的关键字作为变量名,比如 sum、def、list 等。

不要使用字母‘l’(小写的L),‘O’(大写的O),或者‘I’(大写的I)作为单字符变量名。

在有些字体里,这些字符无法和数字0和1区分,如果想用‘l’,用‘L’代替。

函数名应该小写,如果想提高可读性可以用下划线分隔。

3.在Jupyter_notebook使用

上面讲了几种规范,我们可以严格按照上面的规范去写代码,按照规范去做,总觉得会有种束缚,不太舒服,可是不按照规范去写,写出来的代码确实不太美观有不易读,那可怎么办呢?有没有一种工具可以帮助我们把不规范的代码直接更改成 PEP8 的规范呢?答案是有,那就是 Autopep8 模块。

首先我们需要去安装一下这个模块,使用如下命令:

pip install Autopep8

安装好 Autopep8 模块以后我们还需要安装一个jupyter_contrib_nbextensions的插件,这个插件是jupyter_notebook中的一个插件。

安装好插件以后,我们来到 Nbextensions 部分,然后把 Autopep8 打勾。这个时候就可以在Jupyter_notebook 中使用 PEP8 规范了。


那具体该怎么用呢?选中你要规范化的代码,然后点击菜单栏中的「小锤子」,即可完成代码规范,就是这么简单。


先看个空格

# 规范前a=1+2---# 规范后a = 1+2

再看个缩进

# 规范前def test_pep(): print("this is test")---# 规范后def test_pep(): print("this is test")


如果你对更多内容、Python自动化软件测试、面试题感兴趣的话可以加入我们175317069一起学习喔。群里会有各项测试学习资源发放,更有行业深潜多年的技术人分析讲解。

欢迎【点赞】、【评论】、【关注】~

Time will tell.(时间会证明一切)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值