官网规范:https://www.python.org/dev/peps/pep-0008/

1、不在同一句import中引用多个库

# 正确姿势:
import os
import sys # 错误姿势
import os,sys # 未被使用的库就不用引用了

2、代码长度约束

一行列数:PEP8 规定最大为79列,如果拼接url很容易超限
一个函数:不可以超过30行;直观来讲就是完整显示一个函数一个屏幕就够了,不需要上下拖动
一个类:不要超过200行代码,不要超过10个方法
一个模块:不要超过500行

3、常见格式问题

1)W292 no newline at end of file
处理:在代码末尾加一行回车就行 2)E302 expected 2 blank lines,found 1
处理:需要再补一个空白行(函数之间需要最少2个空白行,方便查阅、区分) 3)E231 missing whitespace after ‘,’
处理:原因简单来说还是要方便查看,即逗号后“,”需要补空格 示例:
print("%s %s %s %s" %(A,B,C,D))print("%s %s %s %s" % (A, B, C, D))
也许在这里并不能非常明显看出来,但是当代码多的时候,你会发现适当的空格会显得代码容易观看 4)E225 missing whitespace around operator
处理:主要原因其实跟上面的问题三差不多,主要目的都是为了查看方便 5)W291 trailing whitespace
处理:字面意思,函数、或者代码段终止处出现了多余的空格 举例
return kw (这里多了几个空格,错误)return kw 6)函数间隔
两个函数体之间,间隔两个空行 7)其他
1 typo found # 1个错误被发现
1 weak warning found # 1个弱警告

4、空格
      空格在 Python 代码中是有意义的,因为 Python 的语法依赖于缩进,在行首的空格称为前导空格。在这一节不讨论前导空格相关的内容,只讨论非前导空格。非前导空格在 Python 代码中没有意义,但适当地加入非前导空格可以增进代码的可读性。

# 在二元算术、逻辑运算符前后加空格:如
a = b + c; # 在一元前缀运算符后不加空格,如
if !flg: pass; # “:”用在行尾时前后皆不加空格,如分枝、循环、函数和类定义语言;用在非行尾时两端加空格,如:dict 对象的定义
d = {'key' : 'value'}
# 括号(含圆括号、方括号和花括号)前后不加空格,如:
do_something(arg1, arg2)
而不是
do_something( arg1, arg2 )
# 不要在逗号、分号、冒号前面加空格,但应该在它们后面加(除了在行尾)
# 不要用空格来垂直对齐多行间的标记,因为这会成为维护的负担(适用于:,#,=等)

5、空行
    适当的空行有利于增加代码的可读性,加空行可以参考如下几个准则:
    1) 在类、函数的定义间加空行;
    2) 在 import 不同种类的模块间加空行;
    3) 在函数中的逻辑段落间加空行,即把相关的代码紧凑写在一起,作为一个逻辑段落,段落间以空行分隔;

Python 编码规范的更多相关文章

  1. python编码规范

    python编码规范 文件及目录规范 文件保存为 utf-8 格式. 程序首行必须为编码声明:# -*- coding:utf-8 -*- 文件名全部小写. 代码风格 空格 设置用空格符替换TAB符. ...

  2. 【转】python编码规范

    http://blog.csdn.net/willhuo/article/details/49300441 决定开始Python之路了,利用业余时间,争取更深入学习Python.编程语言不是艺术,而是 ...

  3. python 编码规范整理

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

  4. PEP8 - Python编码规范

    PEP8 - Python编码规范 PEP8 规范 官方文档:https://www.python.org/dev/peps/pep-0008/ PEP8 规范 中文翻译:http://www.cnb ...

  5. python经典书籍推荐:python编码规范

    目录INF-qa Python 编码规范................................................................................ ...

  6. Python编码规范:IF中的多行条件

    Python编码规范:IF中的多行条件 转载 2017年03月08日 09:40:45 http://blog.csdn.net/wsc449/article/details/60866700 有时我 ...

  7. 说说Python编码规范

    前言 已有近两个月没有发表过文章了,前段时间外甥和女儿过来这边渡暑假,平常晚上和周末时间都陪着她们了,趁这个周末有空,再抽空再把这块拾起来.         这么久没写了,再次拿起键盘,想想,发表些什 ...

  8. 转--python 编码规范

    编程规范 1.1. 命名规范 1.1.1. [强制] 命名不能以下划线或美元符号开始和结尾 反例: name / __name / $Object / name / name$ / Object$ 1 ...

  9. Python 编码规范(Google)

    Python 编码规范(Google) https://blog.csdn.net/q469587851/article/details/54096093 Python 风格规范(Google) 本项 ...

  10. PEP8 Python 编码规范整理(转)

    决定开始Python之路了,利用业余时间,争取更深入学习Python.编程语言不是艺术,而是工作或者说是工具,所以整理并遵循一套编码规范是十分必要的.所以今天下午我根据PEP 8整理了一份,以后都照此 ...

随机推荐

  1. Java Lock ReentrantLock ReentrantReadWriteLock

    Lock与Synchronized的区别:   1)Lock是一个接口,而synchronized是Java中的关键字,synchronized是内置的语言实现: 2)synchronized在发生异 ...

  2. News: Visual Studio Code support debugging Linux Apps

    http://arstechnica.com/information-technology/2015/11/visual-studio-now-supports-debugging-linux-app ...

  3. Java基础之一组有用的类——使用Scanner对象(TryScanner)

    控制台程序. java.util.Scanner类定义的对象使用正则表达式来扫描来自各种源的字符输入,并把输入显示为各种基本类型的一系列标记或者显示为字符串. 默认情况下,Scanner对象读取标记时 ...

  4. SpinLock 实现

    /* Example: SpinLock Description: SpinLock is the lock implementation using AtomicInteger as a primi ...

  5. java中DriverManager跟DataSource获取getConnection有什么不同?

    1.datasource是与连接池获取连接,而DriverManager是获取与数据库的连接! DriverManager类的主要作用是管理注册到DriverManager中的JDBC驱动程序,并根据 ...

  6. 脚本:SQLServer 2008 生成某数据库中的所有索引创建脚本

    --1. get all indexes from current db, place in temp table select schemaName = s.name, tablename = ob ...

  7. CGRect 结构体的另外一种写法

    //    _textF = CGRectMake(textX, textY, textSize.width, textSize.height); _textF = (CGRect){{textX, ...

  8. hduoj 4708 Rotation Lock Puzzle 2013 ACM/ICPC Asia Regional Online —— Warmup

    http://acm.hdu.edu.cn/showproblem.php?pid=4708 Rotation Lock Puzzle Time Limit: 2000/1000 MS (Java/O ...

  9. Java基础(9):Java生成随机数一定范围内的数的一个典型例子

    题目:编写一个JAVA程序,创建指定长度的 int 型数组,并生成 100 以内随机数为数组中的每个元素赋值,然后输出数组 note: 通过 (int)(Math.random() * 100) 生成 ...

  10. fread与fwrite的自我理解

    size_t  fread(void* buff,size_t size,size_t count,FILE* stream) 参数1:读取到该buff所指向的内存空间中 参数2:每次读取的字节数,单 ...