pep8 python 编码规范_实用的python编码规范

编码规范在程序开发中是一项很重要要求,良好的编码规范对程序的可读性、代码的可维护性都有很大的提高,从而提高开发效率。下面总结了python中一些实用的开发规范,供大家借鉴和参考。

1.每行不超过80个字符

每行代码太长既不美观也影响可读性,当需要写一行长代码时,可以使用圆括号将这行代码包起来,并在适当的地方换行。这样易读且美观。像下面这样:

7a4483235cb1700180a305f196a68429.png

不要使用反斜杠连接多行。

这种方式在导包时也适用,如果一个库中需要导入很多模块,可以使用圆括号将需导入的模块包起来,并在适当的地方换行,像下面这样:

331818564f828a37afce7b564492ae9f.png

2.使用4个空格缩进代码

你可能遇到过这种情况,在Pycharm中写好的代码上传到Linux服务器上,运行后会提示代码缩进错误。这是因为在Pycharm中,你使用的是Tab进行缩进,导致在Linux服务器上出错。

所以,要使用4个空格,而不是Tab键进行缩进。

3.适当的使用条件表达式

适当的使用条件表达式,可以使代码看起来简洁,像下面这样:

flag = request.POST.get(“flag”)flag = 1 if flag == 1 else 2

4.列表推导和生成器表达式

适当的使用列表推到和生成器表达式,也可以使代码看起来简洁,像下面这样:

students = [1, 2, 3, 4, 5, 6, 7, 8]group = [ id for id in students if id%2 == 0 ]

Lambda函数也适用于单行函数

5.使用隐式的False

在python中,0、None、[]、{}、“”这些都是False,所以我们在判断某个变量是否是这些值时,可以直接这样判断:

if param:

而不是

if param != []:

上面的方式看起来简洁多了。但是注意,0会被当作False来处理,如果你要判断一个值是否是0,就不要用上面的方式了,只能这样写:

if param == 0:

6.字符串的拼接

避免在循环中用+和+=操作符来累加字符串. 由于字符串是不可变的, 这样做会创建多余的临时对象, 作为替代方案, 你可以将每个子串加入列表, 然后在循环结束后用 .join 连接列表。

7.函数参数设置默认值

你可以在函数参数列表的最后指定变量的值, 例如

def foo(a, b = 0):

但是可能出现问题:

默认参数只在模块加载时求值一次. 如果参数是列表或字典之类的可变类型, 这可能会导致问题. 如果函数修改了对象(例如向列表追加项), 默认值就被修改了.

尽量不要在函数或方法定义中使用可变对象作为默认值。

8.函数中使用文档字符串

定义一个函数时,同时应该给它加上文档字符串,文档字符串中包含函数功能、函数入参、函数出参等信息,像下面这样:

e0f99c735b588594e3319e46c8c6569f.png

调用者通过文档字符串就能知道函数的功能、入参、出参等信息。

9.字符串格式化

可以使用下面几种方法格式化字符串

str1 = "hello %s, 今年%s岁" % (name, age)str2 = "hello {}, 今年{}岁".format(name, age)

或者:

2ce0f6c419c7d8ad52ceac7138253100.png

今天就到这里,本文的总结还有不全之处,欢迎大家来补充。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/501036.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python txt转json_实战篇 | 用Python来找你喜欢的妹子(二)

用Python做有趣的事情最近整理一个爬虫系列方面的文章,不管大家的基础如何,我从头开始整一个爬虫系列方面的文章,让大家循序渐进的学习爬虫,小白也没有学习障碍.爬虫篇:使用Python动态爬取某大V微博,再用词…

linux 切换root账号_Linux 服务器的安全保障,看看这些

作为一种开放源代码的操作系统,Linux 服务器以其安全,高效和稳定的显著优势而得以广泛应用,但是,若不加以控制,也不见得安全到哪里,这篇博文主要从账号安全控制、系统引导和登录控制的角度,来进…

JAVA进阶开发之(异常类)

保姆级别的异常类教学(附代码) 目录 1、什么是异常: 2、 java语言中异常以什么形式存在的呢? 3、异常对应的现实生活中是怎样的? 4、异常处理机制 5、异常处理的具体方式 6、运行时异常编写程序时可以不处理 7…

bat文件打开一闪就没了_window文件夹目录树的创建

问题描述当我们的项目文件夹逐渐丰满,各类文件种类繁多,为了增强项目资料的自明性,便于资料管理和交接,有必要对项目文件进行汇总说明。要进行文件汇总,首先要提取文件的目录树。什么是目录树呢?在cmd黑窗口…

JAVA进阶开发之(异常练习题)

编写程序模拟用户注册: 1、程序开始执行的时候,提示用户输入“用户名”和“密码”信息 2、输入信息之后,后台JAVA程序模拟用户注册 3、注册时用户名要求长度在【6-14】之间,小于或者大于都表示异常 注意: 完成注册的…

boolean 默认_MySQL数据类型测试:BOOLEAN、TINYINT测试数据总结(第八节)

前面几节Amy给大家分享了STE集合类型和枚举类型ENUM的测试数据,还没来得及看到的读者可以点击这里查看往期文章。之前看到一些平台上很多人咨询mysql是否提供布尔类型的问题。MySQL数据库确实提供布尔类型,此数据类型的关键字可以写成:布尔类…

netty cpu 占用率 高_Netty 是如何支撑高性能网络通信的?

作为一个高性能的 NIO 通信框架,Netty 被广泛应用于大数据处理、互联网消息中间件、游戏和金融行业等。大多数应用场景对底层的通信框架都有很高的性能要求,作为综合性能最高的 NIO 框架 之一,Netty 可以完全满足不同领域对高性能通信的需求。…

JAVA进阶教学之(单链表数据结构)

什么是链表: 内存地址不连续,基本单元是节点对象Node,单链表尾结点默认是null 什么是链表中的节点: 节点是单链表中的基本单元,每一个节点都有两个属性 属性一:存储的数据 属性二:下一个节点的内…

eclipse maven打包_Maven 学习

1 Maven 简介Maven 使用项目对象模型(POM,Project Object Model) 的概念,可以通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具2 Maven 的下载与IDE 的整合1 下载地址http://maven.apche.org2 Eclipse 整合Mave…

口琴膜片什么作用_2020年半音阶口琴选购攻略,让小白告别选择困难

为什么我会喜欢上口琴,其实是因为小时候看到《数码宝贝》里的阿和吹奏口琴,当时觉得很酷。不过家里条件很差,想要一个但是没提,后来工作买了一把铃木的。不过选口琴是一个很麻烦的事情,品类太多。在了解的过程中&#…

JAVA进阶教学之(集合)

目录 1、集合概述 2、集合存储的数据类型 3、不同的集合,底层都会对应不同的数据结构 4、集合继承结构图(部分接口和类) 5、Collection接口中常用的方法 6、Collection 集合迭代(遍历) 7、Collection的contains…

python中有数组吗_python有数组吗

广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元!感悟: 1.python列表操作里不允许变量类型的指针2.case1类似于冒泡排序操作,这个是满足…

flutter天气_牛笔!自己用Flutter撸一个天气APP

这是一款简约风格的 flutter 天气项目,提供实时、多日、24 小时、台风路径以及生活指数等服务,支持定位、删除、搜索等操作。下图为主页效果:开始本身作为天气 APP,自定义绘制自然少不了,首页多样的背景效果&#xff0…

电脑远程凭证不工作:解决

电脑 远程桌面连接你的凭据不工作解决方法 方法/步骤 第一步我们首先需要知道远程桌面连接你的凭据不工作原因是,远程的电脑拒绝了访问,需要设置在远程的电脑上设置安全选项,按winR键,打开运行,输入“gpedit.msc”&a…

python汉诺塔递归算法_Python文摘:汉诺塔问题与递归算法

历史传说: 在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝石针。印度教的主神梵天在创造世界的时候,在其中一根针上从下到上地穿好了由大到小的64片金片,这就是所谓的汉诺塔。不论白天黑夜…

转-递归教学

作者:帅地 链接:https://www.zhihu.com/question/31412436/answer/683820765 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 递归专题连续刷题半年,从小白到学会了套路&#xff…

android游戏编程之从零开始_纯C语言程序员写的编程新手入门基础小游戏之最炫酷推箱子...

很多编程爱好者都编写过推箱子游戏编程吧,最近有好些朋友看见我以前的推箱子程序后,问我是怎么做的。我一直想把这个程序的整个过程写一份详细的东西,与各位编程爱好者分享,一直没空。正好现在放假了,而且离回家还有几…

c++ h cpp文件如何关联_C++核心准则SF.5: .cpp文件必须包含定义它接口的.h文件

SF.5: A .cpp file must include the .h file(s) that defines its interfaceSF.5: .cpp文件必须包含定义它接口的.h文件Reason(原因)This enables the compiler to do an early consistency check.这样可以让编译器尽早进行一致性检查。Example, bad(反面示例)// foo.h:void f…

JAVA进阶教学之(IO流)

目录 1、什么是IO流 2、流的分类 3、流的四大家族首领 4、java.io.*包下需要掌握的16个流 5、FileInputStream的实用方法 6、FileOutputStream的方法 7、文件复制/拷贝 8、FileReader的使用 9、FileWriter的使用 10、复制普通文本文件 11、BufferedReader带有缓冲区…

devtools安装_R语言如何批量安装软件包

1. 为什么要批量安装R语言包当你在新的环境下, 安装R语言时,你需要安装很多包,比如tidyverse,比如data.table,这里你可以写一个函数,将所有需要的包写进去,然后进行批量安装2. 程序如下&#xf…