良好的编程习惯

2.1  在程序中是用丰富的注释,注释有助于其他程序员理解程序,有助于程序调试(发现和排除程序中的错误),并列出有用的信息。以后修改或更新代码时,注释还有助于理解当初自己编写的程序

2.2  每个程序都应以一条注释开头,描述该程序的用途

2.3  加一些空行来增强程序的可读性

2.4  有意义的变量名可改善程序的“自编档能力”;也就是说,只需读一读程序,就能轻松理解它,而不必非要阅读手册或使用过多的注释

2.5  避免标识符以下划线和双下划线开头,因为python解释器可能保留了那些名称,供内部使用。这样可避免您选择的名称与解释权选择的名称混淆

2.6  在二元运算符两端添加一个空格。这样可以突出运算符,增强程序可读性

2.7  和在代数中一样,可在表达式中添加原本不需要的圆括号,使其更清晰。这些括号叫做冗余括号。冗余括号通常用于分组大型表达式中的各个子表达式,使表达式更清晰。将一条长的语句分解成一系列较短的,较简单的语句,有助于使语句更清晰。

2.8  事先建立一个约定,设置您喜欢的缩进量,然后始终贯彻这一约定,虽然按tab键可以生成缩进,但制表位的长度在不同系统上是不同的,建议将3个空格定为一个缩进级别。

2.9  可用续行字符\将长语句分成几行。如一个语句必须分解成多行,请选择有意义的端点,比如在print语句的逗号之后,或者在一个较长的表达式的运算符之后

3.1  如果同时有几级缩进,每个suite都必须缩进,相同级别的不同suite不必具有先宫廷的缩进量,但这是一种良好的编程习惯。

3.2  要在if/elif结构中提供一个默认条件。无默认条件的if/elif结构中,没有被显式检测的条件会被忽略。包括一个默认条件,可强迫程序员处理异常的条件。

3.3  初始化counter和total变量

3.4  执行除法运算时,如除数可能为零,请务必明确检测,并在程序中进行相应的处理(比如打印一条错误信息),不要任由严重错误发生。

3.5  在由哨兵值控制的循环中,当提示输入时,应明确指出哨兵值是哪一个

3.6  在每个控制结构前后各留一个空行,将其同程序其他部分区分开

3.7  嵌套级别过多,会使程序难以理解。通常应将嵌套控制在3级以内。

3.8  在每个控制结构上下留一个空行,并对每个控制结构的主体进行缩进,是程序具有清晰的二维外观,增强可读性。

3.9  避免在for循环主体更改控制变量的值,这有可能导致不易发现的逻辑错误。

3.10  用浮点值来执行财务方面的计算时,可一定要谨慎,近似值错误可能会导致不希望的结果。

3.11  有的程序员认为break和continue违反了结构化编程准则。由于可采用后文即将讨论的结构化编程技术达到同样的目的,所以这些程序员不适用break和continue。

4.1  尽快熟悉核心python模块提供的函数和类集合。

4.2  在函数定义之间放入一个空行,以便区分函数,并增强程序可读性。

4.3  不建议为传给函数的参数和函数定义中的对应参数使用相同的名称。

4.4  悬着有意义的函数名和参数名有利于增强程序可读性,还可减少注释两。这样写程序可获得“自文档化的代码”

4.5  避免变量名遮蔽外层作用域中的名称。为此,要注意避免标识符与内建命名空间中的标识符同名,并避免在程序中使用重复的标识符。

4.6  使用默认参数可简化函数调用的编写,但有的程序员认为,显示指定所有参数会使程序更易读。

python良好的编程习惯的更多相关文章

  1. 养成这8个编程习惯,你的Python性能将蹭蹭蹭地往上涨

    Python不以性能见长,但掌握一些技巧,也可尽量提高程序性能,避免不必要的资源浪费. 1. 使用局部变量 尽量使用局部变量代替全局变量:便于维护,提高性能并节省内存. 使用局部变量替换模块名字空间中 ...

  2. Python金融应用编程(数据分析、定价与量化投资)

    近年来,金融领域的量化分析越来越受到理论界与实务界的重视,量化分析的技术也取得了较大的进展,成为备受关注的一个热点领域.所谓金融量化,就是将金融分析理论与计算机编程技术相结合,更为有效的利用现代计算技 ...

  3. python的面向对象编程

    面向对象编程是一种程序的范式,它把程序看成是对不同对象的相互调用,对现实世界建立的一种模型. 面向对象编程的基本思想,类和实例.类用于定义抽象对象,实例根据类的定义被创建出来. 在python当中我们 ...

  4. 学习python-20191208(1)-Python Flask高级编程开发鱼书_第03章_数据与flask路由

    视频01: 略...... ———————————————————————————————————————————————————————————— 视频02: 搜索需要外部数据源,也就是需要外部的A ...

  5. Python——11面向对象编程基础

    */ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...

  6. Python 黑帽编程大纲(变化中)

    Python 黑帽编程大纲(预览版) 教程说明: 本系列教程,采用的大纲母本为<Understanding Network Hacks Attack and Defense with Pytho ...

  7. 防御性编程习惯:求出链表中倒数第 m 个结点的值及其思想的总结

    防御性编程习惯 程序员在编写代码的时候,预料有可能出现问题的地方或者点,然后为这些隐患提前制定预防方案或者措施,比如数据库发生异常之后的回滚,打开某些资源之前,判断图片是否存在,网络断开之后的重连次数 ...

  8. Python黑帽编程 3.4 跨越VLAN

    Python黑帽编程 3.4 跨域VLAN VLAN(Virtual Local Area Network),是基于以太网交互技术构建的虚拟网络,既可以将同一物理网络划分成多个VALN,也可以跨越物理 ...

  9. 漫谈C++:良好的编程习惯与编程要点

    以良好的方式编写C++ class 假设现在我们要实现一个复数类complex,在类的实现过程中探索良好的编程习惯. ① Header(头文件)中的防卫式声明 complex.h: # ifndef ...

随机推荐

  1. zoj 1508 Intervals (差分约束)

    Intervals Time Limit: 10 Seconds      Memory Limit: 32768 KB You are given n closed, integer interva ...

  2. Codeforces Round #388 (Div. 2) 749E(巧妙的概率dp思想)

    题目大意 给定一个1到n的排列,然后随机选取一个区间,让这个区间内的数随机改变顺序,问这样的一次操作后,该排列的逆序数的期望是多少 首先,一个随机的长度为len的排列的逆序数是(len)*(len-1 ...

  3. [AGC010E] Rearranging [拓扑排序+堆]

    题面 传送门 思路 首先,一个显然的结论是:Alice调整过后的序列中任意两个不互质的数的相对顺序无法改变 那么我们可以以这个性质为突破口 我们在两个不互质的权值的点之间连一条边(没错这是个图论题!! ...

  4. 使用python读取mysql数据库并进行数据的操作

    (一)环境的配置 使用python调用mysql数据库要引进一些库. 目前我使用的python版本是python3.6.引进库为pymysql 其他对应的库可以有以下选择: mysqldb,oursq ...

  5. 2016华中农业大学预赛 B 数学

    Problem B: Handing Out Candies Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 272  Solved: 20[Submit ...

  6. 享元模式(FlyWeight Pattern)及其在java自动拆箱、自动装箱中的运用

    本文主要从三个方面着手,第一:简要介绍享元模式.第二:享元模式在基本类型封装类中的运用以Integer为例进行阐述.第三:根据第一.第二的介绍,进而推出java是如何实现自动拆箱与装箱的. 第一:简要 ...

  7. win安装pycurl和linux安装pycurl

    1.win pip install wheel http://www.lfd.uci.edu/~gohlke/pythonlibs/ 下载对应的包: pip install e:\pycurl-7.4 ...

  8. 【ZOJ4067】Books(贪心)

    题意:DG在书店买书,从左到右第i本书价格为ai. DG从左走到右,能买就买.如果已知DG买了m本书,问他原本最多有多少钱. 若无上限,输出“Richman”,若不可能买这么多书,输出“Impossi ...

  9. php7简短而安全的数组遍历方法

    在写 PHP 的数组遍历的时候,我们通常会这样写: foreach ($definition['keys'] as $id => $val) { // ... } 但是其实这样会引起一个重要的问 ...

  10. mongodb简单安装

    参考文档: http://www.cnblogs.com/hanyinglong/archive/2016/07/21/5690611.html conf文件: dbpath = /usr/local ...