Python基础教程——代码规范

在开始学习Python之前,我们需要了解Python代码的规范,正所谓“无规矩不成方圆”,一行不合乎编程规矩的代码,会为你埋下不停报错的隐患。

提前知晓代码规范,可以帮助你在后续的学习中逻辑清晰,降低报错率的同时,还能为你养成良好的编程习惯。

话不多说,直接开讲,咱们先上目录。

编码

代码格式

import语句

空格

换行

docstring


编码

百度对编码的解释,是将信息从一种新式或格式转变为另一种形式的过程,在计算机硬件中,编码就是利用代码来表示各组数据资料,使计算机能够读懂这行代码并对信息进行分析和处理。

在Python的编程过程中,需要注意以下两点:

如无特殊情况, 文件一律使用 UTF-8 编码

如无特殊情况, 文件头部必须加入#-*-coding:utf-8-*-标识


代码格式

缩进

同一使用4个空格进行缩进,就是一个Tab


行宽

每行代码尽量不要超过80个字符(特殊情况下可超过,但最长不得超过120)

如果代码过长,可能存在着以下三种问题:

这在查看 side-by-side 的 diff 时很有帮助

方便在控制台下查看代码

太长可能是设计有缺陷


引号

编码过程中,如果需要计算机直接输出你想要的信息,我们就要用到引号,自然语言用双引号,机器标示用单引号,代码中多数使用单引号,举个例子:

自然语言 使用双引号 "..."

例如错误信息;直接采用这种方式"错误信息"

机器标识 使用单引号 '...' 例如 dict 里的 key

正则表达式 使用原生的双引号 r"..."

文档字符串 (docstring) 使用三个双引号 """......"""


空行

模块级函数和类定义之间空两行;

类成员函数之间空一行;

class A:


def __init__(self):

pass


def hello(self):

pass


def main():

pass

可以使用多个空行分隔多组相关的函数

函数中可以使用空行分隔出逻辑相关的代码


import语句

编写的正确方式,应该是分行书写

#正确的写法

import os

import sys


# 不推荐的写法

import sys,os

# 正确的写法

from subprocess import Popen, PIPE


import语句应该放在文件头部,置于模块说明及docstring之后,于全局变量之前;

import语句应该按照顺序排列,每组之间用一个空行分隔


import os

import sys


import msgpack

import zmq


import foo


导入其他模块的类定义时,可以使用相对导入

from myclass import MyClass


空格

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

# 正确的写法

i = i + 1

submitted += 2

y = y * 2 - 1

hypot2 = x * x + y * y

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


# 不推荐的写法

i=i+1

submitted +=2

y = y*2 - 1

hypot2 = x*x + y*y

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


换行

if/for/while一定要换行:

# 正确的写法

if foo == 'blah':

do_blah_thing()


# 不推荐的写法

if foo == 'blah': do_blash_thing()


禁止复合语句,即一行中包含多个语句:

# 正确的写法

do_first()

do_second()

do_third()


# 不推荐的写法

do_first();do_second();do_third();


使用反斜杠\换行,二元运算符+ .等应出现在行末;长字符串也可以用此法换行

session.query(MyTable).\

filter_by(id=1).\

one()


print 'Hello, '\

'%s %s!' %\

('Harry', 'Potter')


docstring

docstring文档字符串是一个重要的工具,用于解释文档程序,帮助你的程序文档更加易懂。

其最需要注意的规范有两点:

所有的公共模块、函数、类、方法,都应该写 docstring 。私有方法不一定需要,但应该在 def 后提供一个块注释来说明。

docstring 的结束"""应该独占一行,除非此 docstring 只有一行。

打个比方

del function():

    '''say something here!

    '''

    pass

print(function.__doc__) # 调用doc

输出结果为

say something here!

不难发现,代码的规范是为了保证Python的简洁与优雅,养成这种良好的编程习惯,也方便我们日后对自己的代码进行复查检修。

以上便是今天分享Python代码规范中的简明概述,明天讲述的是代码规范中的注释,在正式进入我们的Python学习后,我会在每天的文章背后附上一个小练习题,并附上源码。

当然,还是希望你们先试着做一下,再与源码进行比对,查漏补缺。

最后,助你学有所成~

原文链接:Python代码规范——简明概述

欢迎你关注我的公主号《Python小白集训营》,每日更新零基础小白入门Python的教程和实操,回复关键词还能获得Python学习大礼包哦~

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,444评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,421评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,036评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,363评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,460评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,502评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,511评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,280评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,736评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,014评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,190评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,848评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,531评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,159评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,411评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,067评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,078评论 2 352

推荐阅读更多精彩内容