一、Python命名规范

1、标识符

和大多数编程语言一样,一般都要遵守如下规定:

① 只能以字母或下划线开头,且只能包含字母、下划线和数字

② 不能是python的关键字,例如def、class就不能作为标识符

③ Python大小写敏感

④ 不允许使用中文

⑤ 不允许使用歧义单词,例如class_,在python中不要随便使用下划线开头的表示符,因为具有其他含义。

以下关键字不能申明为变量

[

'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else',

'except', 'exec', 'finally', 'for', 'from', 'global','if', 'import', 'in', 'is',

'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield'

]

2、命名规范

模块

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

# 正确的模块名

import urllib

import html_parser

# 不推荐的模块名

import Decoder

类名

类名使用大驼峰命名风格,首字母大写,私有类可用一个下划线开头

class Farm():

pass

class AnimalFarm(Farm):

pass

class _ProtectObj():

pass

函数

函数名一律小写命名,如有多个单词,用下划线隔开

def run():

pass

def run_with_env():

pass

保护函数在函数前加一个下划线_,私有函数在函数前加两个下划线__

说明:关于保护和私有的区别,后续在函数中将会详细讲解

class Person():

def _protect_func():

pass

def __private_func():

pass

变量名

变量名尽量小写, 如有多个单词,用下划线隔开

if __name__ == '__main__':

count = 0

school_name = ''

二、Python代码规范

1、缩进

任何一种编程语言都有各自的语法和编程规范,python之所以以‘优雅,简单’著称,其中一个最重要的原因,就是它的“缩进”,大部分的编程语言都是使用“{}”来表示一个语句块或者代码段,而我们的python与众不同,不走寻常路,用缩进层次来组织代码块,而约定一个缩进是用‘4个空格’来表示,请务必遵守约定俗成的习惯,坚持使用4个空格的缩进,如果是用文本编辑器或者IDE,可以把Tab自动转换为4个空格,然后用tab键来使用缩进,确保不混用Tab和空格。

python写规律图形代码 python编写规则_下划线

2、续行

如果单行语句太长,为了美观可以在行结尾用‘\’符号表示续行,表示任然是同一行。

如果使用各种括号,python会认为括号内是一个整体,这个时候跨行不需要用‘\’。

第二行缩进到括号的起始处

foo = long_function_name(var_one, var_two,

var_three, var_four)

3、注释

以‘#’开头的语句是注释,不一定要出现在行首,在某些语句后面也可以加注释,注释是给人看的,可以是任意内容,解释器会忽略掉注释,但注意不要使用无意义的注释。

正确的写法:

x = x + 1 # 边框加粗一个像素

不推荐的写法(无意义的注释):

x = x + 1 # x加1

注释建议

在代码的关键部分(或比较复杂的地方), 能写注释的要尽量写注释,比较重要的注释段, 建议使用多个等号隔开, 可以更加醒目, 突出重要性,如下所示样式:

# =====================================

# 请在此处添加注释语句!!

# =====================================

文档注释

文档注释可出现在模块、函数和类中,一般在声明语句后的第一行位置,不是必须,有必要时可添加。文档注释以""" 开头和结尾, 首行不换行, 如有多行, 末行必需换行,这样在python中就可以通过对象的__doc__对象获取文档。

这里还有个小技巧,在Pycharm这样的IDE工具当中,通常可以先打""" ,然后敲回车,Pycharm会自动生成参数说明模板,剩下的自己补充就可以了:

python写规律图形代码 python编写规则_下划线_02

4、空格

在Python中,为了让代码看起来更清晰,对于空格的使用有些不成文的约定。

① 在二元运算符两边各空一格 [=,-,+=,==,>,in,is not, and]:

# 正确的写法

i = i + 1

submitted += 1

c = (a + b) * (a - b)

# 不推荐的写法

i=i+1

submitted +=1

c = (a+b) * (a-b)

函数的参数列表中,‘,’号之后要有空格

# 正确的写法

def complex(real, imag):

pass

# 不推荐的写法

def complex(real,imag):

pass

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

# 正确的写法

def complex(real, imag=0.0):

pass

# 不推荐的写法

def complex(real, imag = 0.0):

pass

③ 左括号之后,右括号之前不要加多余的空格

# 正确的写法

spam(ham[1], {eggs: 2})

# 不推荐的写法

spam( ham[1], { eggs : 2 } )

④ 字典对象的左括号之前不要多余的空格

# 正确的写法

dict['key'] = list[index]

# 不推荐的写法

dict ['key'] = list [index]

⑤ 不要为对齐赋值语句而使用的额外空格

# 正确的写法

x = 1

y = 2

long_variable = 3

# 不推荐的写法

x = 1

y = 2

long_variable = 3

5、空行

类成员函数之间空一行,模块级函数和类定义之间空两行;

class A:

def __init__(self):

pass

def hello(self):

pass

def main():

pass