一、设置代码格式

1、代码编写风格的重要性

随着你编写的程序越来越长,有必要了解一些代码格式设置约定。请花时间让你的代码尽可能易于阅读;让代码易于阅读有助于你掌握程序是做什么的,也可以帮助他人理解你编写的代码。为确保所有人编写的代码结构都大致一致。Python程序员都遵循一些格式设置约定。学会编写整洁的Python后,就能明白他人编写Python代码的整体结构------只要他们和你遵循相同的指南。

2、设置格式指南

若要提出Python语言修改建议,需要编写Python改进报案(Python Enchancement Proposal,PEP)。PEP8是最古老的PEP之一,它向Python程序员提供了代码格式设置指南。Python格式设置指南的编写者深知,代码被阅读的次数比编写的次数多。代码编写出来后,调试时你需要阅读它;给程序添加新功能时,需要花很长的时间阅读代码;与其他程序员分享代码,这些程序员也将阅读它们。如果一定要在让代码易于编写和易于阅读之间做出选择,Python程序员几乎总是会选择后者。

3、缩进

PEP 8建议每级缩进都使用四个空格,这既可提高可读性,又留下了足够的多级缩进空间。在字处理文档中,大家常常使用制表符而不是空格来缩进。对于字处理文档来说,这样做的效果很好,但混合使用制表符和空格会让Python解释器感到迷惑。每款文本编辑器都提供了一种设置,可将输入的制表符转换为指定数量的空格。你在编写代码时应该使用制表符键,但一定要对编辑器进行设置,使其在文档中插入空格而不是制表符。在程序中混合使用制表符和空格可能导致极难解决的问题。如果你混合使用了制表符和空格,可将文件中所有的制表符转换为空格,大多数编辑器都提供了这样的功能。

4、行长

很多Python程序员都建议每行不超过80字符,最初制定这样的指南时,在大多数计算机中,终端窗口每行只能容纳79字符;当前,计算机屏幕每行可容纳的字符数多得多,为何还要使用79字符的标准行长呢?这里有别的原因。专业程序员通常会在同一个屏幕上打开多个文件,使用标准行长可以让他们在屏幕上并排打开两三个文件时能同时看到各个文件的完整行。PEP 8还建议注释的行长都不超过72字符,因为有些工具为大型项目自动生成文档时,会在每行注释开头添加格式化字符。PEP 8中有关行长的指南并非不可逾越的红线,有些小组将最大行长设置为99字符。在学习期间,你不用过多地考虑代码的行长,但别忘了,协作编写程序时,大家几乎都遵循PEP 8指南。在大多数编辑器中,都可设置一个视觉标志-------通常是一条竖线,让你知道不能越过的界限在上面地方。

5、空行

要将程序的不同部分分开,可使用空行。你应该使用空行来组织程序文件,但也不能滥用。如果你有5行创建列表的代码,还有3行处理该列表的代码,那么用一个空行将这两部分隔开是合适的。然而,你不应使用三四个空行将它们隔开。空行不会影响代码的运行,但会影响代码的可读性。Python解释器根据水平缩进情况来解读代码,但不关心垂直间距。

二、函数的编写风格

编写函数时,需要牢记几个细节,应给函数指定描述性名称,且只在其中使用小写字母和下划线。描述性名称可帮助你和别人明白代码想要做什么。给模块命名时也应遵循上述约定。

每个函数都应包含简要地阐述其功能的注释,该注释应紧跟在函数定义后面,并采用文档字符串格式。文档字符串良好的函数让其他程序员只需阅读该文档字符串中的描述就能够使用它:他们完全可以相信代码如描述的那样运行:只要知道函数的名称、需要的实参以及返回值的类型,就能再自己的程序中使用它。

给形参指定默认值时,等号两边不要有空格:def function_name(parameter_0, parameter_1='default value')

对于函数调用中的关键字实参,也应遵循这种约定:function_name(value_0, parameter_1='value')

PEP 8(https://www.python.org/dev/peps/pep-0008)建议代码行的长度不要超过79字符,这样只要编辑器窗口适中,就能看到整行代码。如果形参很多,导致函数定义的长度超过了79字符,可在函数定义中输入左括号后按回车键,并在下一行按两次Tab键,从而将形参列表和只缩进一层的函数体区分出来。

大多数编辑器都会自动对齐后续参数列表行,使其缩进程度与你给第一个参数列表行指定的缩进程度相同:def function_name(

parameter_0, parameter_1, parameter_2,

parameter_3, parameter_4, parameter_5):

function body...

如果程序或模块包含多个函数,可使用两个空行将相邻的函数分开,这样将更容易知道前一个函数在什么地方结束,下一个函数从什么地方开始。

所有的import语句都应放在文件开头,唯一例外的情形时,在文件开头使用了注释来描述整个程序。

三、类的编码风格

你必须熟悉有些与类相关的编码风格问题,在你编写的程序较复杂时尤其如此。类名应采用驼峰命名法则;即将类名中的每个单词的首字母都大写,而不使用下划线。实例名和模块名都采用小写格式,并在单词之间加上下划线。对于每个类,都应紧跟在类定义后面包含一个文档字符串。这种文档字符串简要地描述类的功能,并遵循编写函数的文档字符串时采用的格式约定。每个模块也都应包含一个文档字符串,对其中的类可用于做什么进行描述。

可使用空行来组织代码,但不要滥用。在类中,可使用一个空行来分隔方法;而在模块中,可使用两个空行来分隔类。需要同时导入标准库的模块和你编写的模块时,先编写导入表准率模块的import语句,再添加一个空行,然后编写导入你自己编写的模块的import语句。在语句包含多条import语句的程序中,这种做法让人更容易明白程序使用的各个模块都来何方。

python文本风格_Python的代码风格相关推荐

  1. python 文本向量化_Python文本特征抽取与向量化算法学习

    本文为大家共享了Python文本特征抽取与向量化的详细代码,供大家参考,详细内容如下 假设我们刚看完诺兰的大片<星际穿越>,设想怎么让机器来自动分析各位观众对电影的评价到底是"赞 ...

  2. python文本编辑器_python最好的ide和文本编辑器

    python文本编辑器 I cannot stress enough how important the right IDE (Integrated Development Environment) ...

  3. python复利计算_python复利代码

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 比如在<零基础学编程012:画出复利曲线图>提到的numpy和mat ...

  4. python文本发音_Python文本转化语音模块大比拼,看看青铜与王者的差别!

    自从开始公众号写作,作息问题就成了一件让人很头大的事情,相对平时学习时间的基础上,每天需要再多抽出来至少两个小时进行公众号写作,这些时间只能从睡眠中挤出来.别人研究怎么碎片化学习,我现在每天盘算的是怎 ...

  5. python代码风格程序越复杂越高级_Python中代码风格的改变和相应的性能优化

    使用现代风格改善你的代码 一旦你开始使用 Python 3,你就有机会接触新的特性来改善你的代码.这篇文章中提到的很多东西实际上在 Python 3 之前就已经被支持了.但我还是要提一下它们,因为知道 ...

  6. python文本去重_Python做文本按行去重的实现方法

    文本: 每行在promotion后面包含一些数字,如果这些数字是相同的,则认为是相同的行,对于相同的行,只保留一行. 思路: 根据字典和字符串切割. 建立一个空字典. 读入文本,并对每行切割前半部分, ...

  7. python 文本换行_Python学习入门(23)—读写文件

    (本号正在连续推出以Python官网文档为主线的系统学习Python的系列文章或视频,感兴趣的朋友们欢迎搜索关注.在这里学习Python事半功倍!本文及后续文章如无特别声明均以Windows平台作为演 ...

  8. 利用 edge的朗读功能,写一个python文本转语音的代码

    下面是一个简单的 Python 代码,可以使用 Microsoft Edge 的朗读功能将文本转换为语音: import win32com.client as wincl speak = wincl. ...

  9. python文本筛选_python 用正则表达式筛选文本信息的实例

    本文主要介绍如何对多个文本进行读取,并采用正则表达式对其中的信息进行筛选,将筛选出来的信息存写到一个新文本. 文本基础操作 打开文件:open('文件名','打开方式')>>>fil ...

  10. anaconda打开python文本编辑器_Python开发环境安装(Anaconda+PyCharm)

    Anaconda 包含Python和python很多库 官网:(下载很慢很慢,<10 k/s) https://www.anaconda.com/download/ 清华大学开源软件镜像站:(点 ...

最新文章

  1. Overload Overwrite Override
  2. 玩转C语言之数组-数组指针
  3. 二阶龙格库塔公式推导_DeepFM原理推导
  4. Java基础7:关于Java类和包的那些事
  5. tomcat,很多时候,可以在服务server.xml中可以实现一些效果
  6. 前复权后复权程序C# .net
  7. Linux网站访问的电脑占CPU,详解Linux如何查看当前占用CPU或内存最多的几个进程...
  8. Windows系统使用minGW+msys 编译ffmpeg 0.5的全过程详述
  9. Runner站立会议04
  10. LeetCode - Duplicate Emails
  11. 人工智能语音灯便携usb小夜灯IC方案七彩led灯语音控制声控感应氛围灯芯片
  12. it高手与it民工区别
  13. 【NPDP产品经理】发散思维让你的思维视野更广阔
  14. ubuntu下flann库编译报错处理
  15. [译]带你揭开Kotlin中属性代理和懒加载语法糖衣
  16. C语言习题11.3,用指针数组编程输出月份的英文表示
  17. BYTE WORD DWORD
  18. java 正则表达式贪婪与懒惰
  19. Echarts 交错正负轴
  20. mba培训班面试-上海mba面试辅导班选谁家?

热门文章

  1. U盘安装Debian 6 amd64版本
  2. 机房走线槽安装现场需要检查的内容
  3. jenkins vue 打包特别慢_Jenkins 自动化部署
  4. guava 的重试机制 guava-retrying 使用
  5. android gesture,Android Gesture 手势创建以及使用示例
  6. c语言 滑窗法_滑窗算法
  7. 共享网络获取树莓派ip_树莓派网络设置
  8. Java 后端MD5加密
  9. LintCode—链表求和(167)
  10. Windows 2012 R2 操作系统搭建DHCP-HA集群