良好的编程习惯

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. Bsd内核选项总结

    Bsd内核选项总结 一: 下面这个选项在每个内核中都要有: machine i386 它指明了机器的硬件体系结构.它必须是i386, pc98, sparc64, alpha, ia64, amd64 ...

  2. 湘潭邀请赛 2018 I Longest Increasing Subsequence

    题意: 给出一个长度为n的序列,序列中包含0.定义f(i)为把所有0变成i之后的Lis长度,求∑ni=1i⋅f(i). 题解: 设不考虑0的Lis长度为L,那么对于每个f(i),值为L或L+1. 预处 ...

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

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

  4. 了解Spark源码的概况

    本文旨在帮助那些想要对Spark有更深入了解的工程师们,了解Spark源码的概况,搭建Spark源码阅读环境,编译.调试Spark源码,为将来更深入地学习打下基础. 一.项目结构 在大型项目中,往往涉 ...

  5. POJ 1039 Pipe | 线段相交

    题目: 给一个管子,有很多转弯处,问从管口的射线射进去最长能射到多远 题解: 根据黑书,可以证明的是这条光线一定经过了一个上顶点和下顶点 所以我们枚举每对上下顶点就可以了 #include<cs ...

  6. 雅礼集训 Day5 T3 题 解题报告

    题 题目背景 由于出题人赶时间所以没办法编故事来作为背景. 题目描述 一开始有\(n\)个苹果,\(m\)个人依次来吃苹果,第\(i\)个人会尝试吃\(u_i\)或\(v_i\)号苹果,具体来说分三种 ...

  7. 白白的(baibaide)

    白白的(baibaide) 有一个长度为 $n$ 的序列 $a_1, a_2, \dots, a_n$,一开始每个位置都是白色.如果一个区间中每个位置都是白色,则称这是一个白白的区间.如果一个白白的区 ...

  8. C中堆和栈的区别

    C++中堆和栈的完全解析 内存分配方面: 堆: 操作系统有一个记录空闲内存地址的链表,当系统收到程序的申请时,会遍历该链表,寻找第一个空间大于所申请空间的堆结点,然后将该结点从空闲结点链表中删 除,并 ...

  9. "todoList妙味"学习总结

    1.v-bind  主要用于属性绑定 :class="{completed: item.isChecked}",它会将{}里面的内容解析为js表达式   2.vue提供了一组方法, ...

  10. XML格式化及解析

    XML格式化工具:notepad++   下载地址 http://rj.baidu.com/soft/detail/13478.html?ald    一个教程地址:http://jingyan.ba ...