前文传送门:Python代码这样写才规范优雅! (一)参考:https://www.python.org/dev/peps/pep-0008/Python PEP8编码规范的内容如下:

1. Introduction 介绍2. A Foolish Consistency is the Hobgoblin of Little Minds 尽信书,则不如无书3. Code lay-out 代码布局3.1 Indentation 缩进3.2 Tabs or Spaces? 制表符还是空格?3.3 Maximum Line Length 行的最大长度3.4 Should a line break before or after a binary operator? 在二元运算符之前应该换行吗?3.5 Blank Lines 空行3.6 Source File Encoding 源文件编码3.7 Imports 导入3.8 Module level dunder names 模块级的“呆”名4. String Quotes 字符串引号5. Whitespace in Expressions and Statements 表达式和语句中的空格5.1 Pet Peeves 不能忍受的事情5.2 Other Recommendations 其他建议6. Comments 注释6.1 Block Comments 块注释6.2 Inline Comments 行内注释6.3 Documentation Strings 文档字符串7. Naming Conventions 命名规范7.1 Overriding Principle 最重要的原则7.2 Descriptive: Naming Styles 描述:命名风格7.3 Prescriptive: Naming Conventions 约定俗成:命名约定7.4 Public and internal interfaces 公共和内部的接口8. Programming Recommendations 编程建议8.1 Function Annotations 功能注释9. 参考

我们接着上一篇的内容继续看:4. String Quotes 字符串引号在Python中,单引号和双引号字符串是相同的。PEP不会为这个给出建议。选择一条规则并坚持使用下去。当一个字符串中包含单引号或者双引号字符的时候,使用和最外层不同的符号来避免使用反斜杠,从而提高可读性。对于三引号字符串,总是使用双引号字符来与PEP257中的文档字符串约定保持一致。5. Whitespace in Expressions and Statements 表达式和语句中的空格5.1 Pet Peeves 不能忍受的事情在下列情况下,避免使用无关的空格:紧跟在小括号,中括号或者大括号后。

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

紧贴在逗号、分号或者冒号之前。

Yes: if x == 4: print x, y; x, y = y, xNo: if x == 4 : print x , y ; x , y = y , x

然而,冒号在切片中就像二元运算符,在两边应该有相同数量的空格(把它当做优先级最低的操作符)。在扩展的切片操作中,所有的冒号必须有相同的间距。例外情况:当一个切片参数被省略时,空格就被省略了。

推荐:ham[1:9], ham[1:9:3], ham[:9:3], ham[1::3], ham[1:9:]ham[lower:upper], ham[lower:upper:], ham[lower::step]ham[lower+offset : upper+offset]ham[: upper_fn(x) : step_fn(x)], ham[:: step_fn(x)]ham[lower + offset : upper + offset]
不推荐:ham[lower + offset:upper + offset]ham[1: 9], ham[1 :9], ham[1:9 :3]ham[lower : : upper]ham[ : upper]

紧贴在函数参数的左括号之前。

Yes: spam(1)No: spam (1)

紧贴索引或者切片的左括号之前。

Yes: dct['key'] = lst[index]No: dct ['key'] = lst [index]

为了和另一个赋值语句对齐,在赋值运算符附件加多个空格。

推荐:x = 1y = 2long_variable = 3
不推荐:x             = 1y             = 2long_variable = 3

5.2 Other Recommendations 其他建议避免在尾部添加空格。因为尾部的空格通常都看不见,会产生混乱:比如,一个反斜杠后面跟一个空格的换行符,不算续行标记。有些编辑器不会保留尾空格,并且很多项目(像CPython)在pre-commit的挂钩调用中会过滤掉尾空格。总是在二元运算符两边加一个空格:赋值(=),增量赋值(+=,-=),比较(==,,!=,<>,<=,>=,in,not,in,is,is not),布尔(and, or, not)。如果使用具有不同优先级的运算符,请考虑在具有最低优先级的运算符周围添加空格。有时需要通过自己来判断;但是,不要使用一个以上的空格,并且在二元运算符的两边使用相同数量的空格。

推荐:i = i + 1submitted += 1x = x*2 - 1hypot2 = x*x + y*yc = (a+b) * (a-b)
不推荐:i=i+1submitted +=1x = x * 2 - 1hypot2 = x * x + y * yc = (a + b) * (a - b)

在制定关键字参数或者默认参数值的时候,不要在=附近加上空格。

推荐:def complex(real, imag=0.0):    return magic(r=real, i=imag)
不推荐:def complex(real, imag = 0.0):    return magic(r = real, i = imag)

功能型注释应该使用冒号的一般性规则,并且在使用->的时候要在两边加空格。(参考下面的功能注释得到能够多信息)

推荐:def munge(input: AnyStr): ...def munge() -> AnyStr: ...
不推荐:def munge(input:AnyStr): ...def munge()->PosInt: ...

当给有类型备注的参数赋值的时候,在=两边添加空格(仅针对那种有类型备注和默认值的参数)。

推荐:def munge(sep: AnyStr = None): ...def munge(input: AnyStr, sep: AnyStr = None, limit=1000): ...
不推荐:def munge(input: AnyStr=None): ...def munge(input: AnyStr, limit = 1000): ...

复合语句(同一行中的多个语句)通常是不允许的。

推荐:if foo == 'blah':    do_blah_thing()do_one()do_two()do_three()

最好别这样:

if foo == 'blah': do_blah_thing()do_one(); do_two(); do_three()

虽然有时候将小的代码块和 if/for/while 放在同一行没什么问题,多行语句块的情况不要这样用,同样也要避免代码行太长!最好别这样:

if foo == 'blah': do_blah_thing()for x in lst: total += xwhile t 10: t = delay()

绝对别这样:

if foo == 'blah': do_blah_thing()else: do_non_blah_thing()try: something()finally: cleanup()do_one(); do_two(); do_three(long, argument,                             list, like, this)if foo == 'blah': one(); two(); three()

精选文章推荐阅读:从零开始学自然语言处理(一)—— jieba 分词从零开始学自然语言处理(二)——手把手带你用代码实现word2vec从零开始学自然语言处理(三)——手把手带你实现word2vec(skip-gram)从零开始学自然语言处理(四)—— 做 NLP 任务文本 id 化与预训练词向量初始化方法从零开始学自然语言处理(五)—— 词性标注从零开始学自然语言处理(六)—— 命名实体识别从零开始学自然语言处理(七)—— 句法结构分析从零开始学自然语言处理(八)—— jieba 黑科技从零开始学自然语言处理(九)—— 依存句法分析扫码下图关注我们不会让你失望!你点的每个在看,是我原创的动力!

google python代码规范_Python代码这样写才规范优雅! (二)相关推荐

  1. 计算机特岗教师转正申请书,特岗教师转正申请书怎么写才规范

    在特岗教师的岗位上辛勤工作三年之后,很多的特岗教师就需要写转正申请书,然后转为正式编制的老师了,但因为这是一件大事情,有的人就怕自己的申请书不符合领导的心意,害怕自己的转正得到延误,所以就提问特岗教师 ...

  2. 简述python程序的书写规范_Python代码书写规范

    Python 编码规范 一 代码编排 1 缩进.4个空格的缩进(编辑器都可以完成此功能),不要使用Tap,更不能混合使用Tap和空格. 2 每行最大长度79,换行可以使用反斜杠,最好使用圆括号.换行点 ...

  3. python 检查代码规范_Python代码规范检测

    一定要注重代码规范,按照平时的代码管理,可以将Python代码规范检测分为两种: 静态本地检测:可以借助静态检查工具,比如:Flake8,Pylint等,调研了一下,用Flake8的相对较多,功能满足 ...

  4. python格式化代码工具_python 代码格式化工具:YAPF

    背景 现在的大多数 Python 代码格式化工具(比如:autopep8 和 pep8ify)是可以移除代码中的 lint 错误.这显然有些局限性.比如:遵循 PEP 8 指导的代码可能就不会被格式化 ...

  5. python 的代码格式_python代码格式

    笨办法学 Python · 续 中文版 笨办法学 Python · 续 中文版 原书:Learn More Python 3 The Hard Way 译者:飞龙 自豪地采用谷歌翻译 在线阅读 PDF ...

  6. python怎么设置代码执行时间_python 代码运行时间获取方式详解

    我们知道为了提高代码的运行速度,我们需要对书写的python代码进行性能测试,而代码性能的高低的直接反馈是电脑运行代码所需要的时间.这里将介绍四种常用的测试代码运行速度的方法. 第一种:使用time模 ...

  7. python重构函数_Python代码重构

    代码重构是一件非常辛苦却非常有意义的事情,代码重构的原因在于: 1.代码过于冗余.沉余 2.代码过于耦合 3.代码过于复杂 4.接口调用超出三层 这次重构主要在于架构问题,自己没有画出实现整个项目的功 ...

  8. python函数结构_Python代码结构:函数

    欢迎关注「issnail」 "一起学习,一起成长!" 1.定义函数与调用函数 定义python函数:依次输入def.函数名.带有函数参数的圆括号,最后紧跟一个冒号(:) 函数命名规 ...

  9. python简单代码运行_python代码如何运行

    交互提示模式下编写代码 安装完Python在Windows 或 Linux中的终端中直接输入python即进入Python 交互会话模式. Python 交互模式有以下几个注意点: 1. 只能够输入P ...

最新文章

  1. 用Thymeleaf在前台下拉列表取值
  2. Spring Boot + redis解决商品秒杀库存超卖,看这篇文章就够了
  3. 图论复习usaco2006jan gold分离的路径
  4. Linux Kernel5.10的核间通信(SGI中断)的本质
  5. React Native 设置RGBA背景色
  6. Presenting the Permanent Generation
  7. 后端:spring提供的钩子,你知道哪些?
  8. 研究人员发现绝大部分酷派(Coolpad)手机暗藏后门(转)
  9. 面试题01.02 判定是否互为字符重排
  10. C++ String16与const char*及char*与vector相互转换
  11. 疯狂python讲义这本书怎么样_疯狂Python讲义(读书笔记)
  12. linux下ant安装和使用教程,ant安装与简单应用
  13. C# Emoji在Web端显示
  14. 精简win服务器系统,My Server之管理Win Server 2012精简版
  15. AIRS Opencat机器猫
  16. VBlog 的代码结构, 使用 vue-element, vue-vant 组件开发的纯前端博客
  17. Encountered a duplicated sql alias [id] during auto-discovery of a native-sq
  18. phpAdmin导入sql文件太大
  19. 关闭微信朋友圈和公众号的广告
  20. 威尔士和英格兰同属英国,但为啥还要在世界杯上进行PK?

热门文章

  1. 在linux上禁用ip,防止frps转发的端口被爆破,并屏蔽境外ip
  2. Mysql学习总结(73)——MySQL 查询A表存在B表不存在的数据SQL总结
  3. 成为java架构师需要具备那些技能?
  4. Excel的html转换成unicode,EXCEL表格中把汉字转换成unicode编码
  5. rss阅读器 java_RSS阅读器
  6. canvas画条形图 微信小程序_小程序-引入 echart 图表画圆饼图
  7. html5有本地存储吗,HTML5的本地存储
  8. mysql导入库指令_mysql数据库指令导入导出
  9. linux 建立伪目标过程,linux之Makefile 编写、规则、伪目标、变量
  10. shell脚本中if流程控制语句的应用