python相关编码规范

        Python 编码规范是一个指导 Python 代码风格和结构的规则集合。它有助于使你的代码易于阅读、易于维护和易于扩展。以下是一些常用的 Python 编码规范:

一、代码编码格式

  • 一般来说,声明编码格式在脚本中是必需的。
  • 国际惯例,文件编码和 Python 编码格式全部为 utf-8 。例如:在 Python 代码的开头,要统⼀加上如下代码:
# -- coding: utf-8 --
  • 如果Python源码文件没有声明编码格式,Python解释器会默认使用ASCII编码。但出现非ASCII编码的字符,Python解释器就会报错,因此非 ASCII 字符的字符串,请需添加u前缀

二、分号

  • 不要在行尾加分号,也不要用分号将两条命令放在同一行。

三、行的最大长度

  • 每行不超过80个字符
  • 以下情况除外:
  1. 长的导入模块语句
  2. 注释里的URL
  • 不要使用反斜杠连接行。

        Python会将 圆括号, 中括号和花括号中的行隐式的连接起来 。圆括号、方括号或花括号以内的表达式允许分成多个物理行,无需使用反斜杠。如果一个文本字符串在一行放不下, 可以使用圆括号来实现隐式行连接。

x = ('乱花渐欲迷人眼 '
     '浅草才能没马蹄')

四、缩进规则

  • Python 采用代码缩进和冒号( : )来区分代码块之间的层次。
    porosity = 0
        for mask in masks:
            for label, area,  perimeter in CFS(mask,scale=scale):
  • 在 Python 中,对于类定义、函数定义、流程控制语句、异常处理语句等,行尾的冒号和下一行的缩进,表示下一个代码块的开始,而缩进的结束则表示此代码块的结束。
numbers = [2, 4, 6, 8, 1]
 
for number in numbers:
    if number % 2 == 1:
        print(number)
        break
else:
    print("No odd numbers")
  • Python 中实现对代码的缩进,可以使用空格或者 Tab 键实现。但无论是手动敲空格,还是使用 Tab 键,通常情况下都是采用 4 个空格长度作为一个缩进量(默认情况下,一个 Tab 键就表示 4 个空格)。

五、注释

  • Python中使用 # 进行注释,注意:# 号后面要空一格。
  • 对于复杂的操作,应该在其操作开始前写上若干行注释.;对于不是一目了然的代码,应在其行尾添加注释。

# -*- coding: UTF-8 -*-
# Filename : test.py
# 用户输入数字

num1 = input('输入第1个数字:')
num2 = input('输入第2个数字:')
 
# 求和
sum = float(num1) + float(num2)

# 显示计算结果
print('数字 {0} 和 {1} 相加结果为:{2}'.format(num1, num2, sum))
————————————————
  • 注释和代码隔开一定的距离,注释应该至少离开代码2个空格,块注释后面最好多留几行空白再写代码。

Python中有三种形式的注释:行注释、块注释、文档注释

        行注释:主要解释自己做了什么,

def FuncName(parameter1,parameter2):

"""

描述函数要做的事情

:param parameter1: 参数一描述(类型、用途等)

:param parameter2: 参数二描述

:return: 返回值描述

"""
  • 行内注释是与代码语句同行的注释
  • 行内注释和代码至少要有两个空格分隔
  • 注释由#和一个空格开始。
    n = input()
    m = input()
    t = n / 2     # t是n的一半
    
    while (t * m / (n + 1) < n):
        t = 0.5 * m + n / 2     # 重新计算t值

    块注释:通常适用于跟随它们的某些(或全部)代码,并缩进到与代码相同的级别

  • Python使用三个双引号或单引号来包围多行注释。

        文档注释:为所有的公共模块,函数,类和方法编写文档说明

  • 非公共的方法没有必要,但是应该有一个描述方法具体作用的注释。这个注释应该在def那一行之后
  • 多行文档注释使用的结尾三引号应该是自成一行
    class SampleClass(object):
        """Summary of class here.
    
        Longer class information....
        Longer class information....
    
        Attributes:
            likes_spam: A boolean indicating if we like SPAM or not.
            eggs: An integer count of the eggs we have laid.
        """
    
        def __init__(self, likes_spam=False):
            """Inits SampleClass with blah."""
            self.likes_spam = likes_spam
            self.eggs = 0

    六、空行

  • 顶层函数和类定义,前后用两个空行隔开
  • 编码格式声明、模块导入、常量和全局变量声明、顶级定义和执行代码之间空两行
  • 类里面方法定义用一个空行隔开
    class Class01:
        pass
     
     
    class Class02:
        def function_01(self):
            pass
     
        def function_02(self):
            pass

    空格使用规则:

  • 在二元运算符两边各空一格

  • 算术操作符两边的空格可灵活使用,但两侧务必要保持一致

  • 逗号、分号、冒号后加空格,行尾不用加

  • 函数的参数列表中,默认值等号两边不要添加空格

  • 左括号之后,右括号之前不要加添加空格

    spam(ham[1], {eggs: 2}, [])
    
    if x == 4:
        print x, y
    x, y = y, x
    
    dict['key'] = list[index]
    
    def complex(real, imag=0.0): return magic(r=real, i=imag)

    八、命名规范

        模块名命名

  • 模块尽量使用小写命名,首字母保持小写,尽量不要用下划线(除非多个单词,且数量不多的情况
    import decoder

    变量命名

  • 变量名尽量小写, 如有多个单词,用下划线隔开,避免使用l o此类与数字容易混淆的字母命名
    count = 0
    this_is_var = 0

    常量或者全局变量命名

  • 全部大写,如有多个单词,用下划线隔开
  • 全⼤写+下划线式驼峰
    MAX_CLIENT = 100

    九、引号用法规则

  • 自然语言使用双引号
  • 机器标识使用单引号
  • 正则表达式使用双引号
  • 文档字符串 (docstring) 使用三个双引号

     十、模块导入规则

  • 导入应该放在文件顶部,位于模块注释和文档字符串之后,模块全局变量和常量之前。
  • 导入应该按照从最通用到最不通用的顺序分组:标准库导入、第三方库导入、应用程序指定导入,分组之间空一行。
  • 每个导入应该独占一行。
    import os
    import numpy
    import sys
    
    from types import StringType, ListType 

    十一、Main

  • 主功能应该放在一个main()函数中。

    在Python中,pydoc以及单元测试要求模块必须是可导入的。代码应该在执行主程序前总是检查 if __name__ == '__main__', 这样当模块被导入时主程序就不会被执行。

    def main():
          ...
    
    if __name__ == '__main__':
        main()

    资料来源【python技能树】python编码规范

你可能感兴趣的:(python新手教程,python,开发语言,机器学习,编辑器,人工智能,深度学习,自然语言处理)