良好的编程习惯

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. 利用反射修改final数据域

    当final修饰一个数据域时,意义是声明该数据域是最终的,不可修改的.常见的使用场景就是eclipse自动生成的serialVersionUID一般都是final的. 另外还可以构造线程安全(thre ...

  2. php5.3.3以上重启php-fpm的方法

    http://www.cnblogs.com/GaZeon/p/5421906.html

  3. AtCoder Grand Contest 018 A

    A - Getting Difference Time limit時間制限 : 2sec / Memory limitメモリ制限 : 256MB 配点 : 300 点 問題文 箱に N 個のボールが入 ...

  4. 翻煎饼_简单模拟_C++

    一.题目描述(懒人可直接跳过看题目概述) 题目来源: SWUST OJ  题目0254 http://acm.swust.edu.cn/problem/0254/ 二.问题概述 给出一列数,每次可将包 ...

  5. 第2章 掌握C++

    参考: https://blog.csdn.net/u014162133/article/details/46573873 1.C++主要特点: 封装性(Encapsulation):把数据与操作数据 ...

  6. VC版本与VS版本 对照表

    Microsoft Visual Studio 6.0                  VC6.0 Microsoft Visual Studio .NET 2002:          VC7.0 ...

  7. PHP 时间获取本周 本月 本季度用法

    <?php        $week_begin = mktime(0, 0, 0,date("m"),date("d")-date("w&qu ...

  8. Servlet 2.4 规范之第七篇:过滤器

    过滤器是一套java组件,用于在请求—>资源—>应答的这一过程中即时转换处理负载和头信息. 本章讲述了Servlet 2.4 API中一些类和方法,这些类和方法提供了一套轻量级框架用于过滤 ...

  9. Mysql优化的方法

    一.表的优化: 1: 定长与变长分离 如 time.手机号等,每一单元值占的字节是固定的. 核心且常用字段,宜建成定长,放在一张表,查询速度会很快 而varchar, text,blob,这种变长字段 ...

  10. nginx安全日志分析脚本的编写

    https://blog.csdn.net/nextdoor6/article/details/51914966