良好的编程习惯

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. easyUI layout

    layout是一个容器,它有5个区域:north(北丐),south(南帝),east(东邪),west(西毒),center(中神通),像不像金庸的天龙八部,中间区域的panel是必须的, 周边区域 ...

  2. 如何实现自己的Android MVP框架?

    相信熟悉android开发的童鞋对MVP框架应该都不陌生吧,网上很多关于android中实现MVP的文章,大家可以直接搜索学习.这些文章中,MVP的实现思路基本都是把Activity.Fragment ...

  3. 搭建自己的YUM源HTTP服务器

    createrepo是linux下的创建仓库的软件包.create是创建的意思,repo是repository的缩写,是仓库的意思.yum(Yellowdog Updater,Modified)主要的 ...

  4. HBase基本数据操作详解【完整版,绝对精品】

    欢迎转载,请注明来源: http://blog.csdn.net/u010967382/article/details/37878701 概述 对于建表,和RDBMS类似,HBase也有namespa ...

  5. Android四大组件:Service

    前言 Service作为Android四大组件之一,应用非常广泛 本文将介绍对Service进行全面介绍(基础认识.生命周期.使用和应用场景) 目录 目录 1. 基础知识 定义:服务,属于Androi ...

  6. python module :shelve

    shelve 是一个 key-value 的数据库. 操作方法和字典几乎一致. shelve 模块功能:以 key - value 的方式存储数据. 写数据 >>> import s ...

  7. pycharm远程登录mysql

    pycharm远程登录mysqlmysql远程登录需要修改配置文件:cd /etc/mysql/mysql.conf.d/sudo vim mysqld.cn修改bing-address=0.0.0. ...

  8. kvm qemu内幕介绍

    转自:http://blog.csdn.net/wj_j2ee/article/details/7978259目录 1 硬件虚拟化技术背景 2 KVM的内部实现概述 2.1 KVM的抽象对象 2.2 ...

  9. 第四步:查看StandardAnalyzer的分词效果并添加停用词

    LUCENE的创建索引有好多种分词方式,这里我们用的StandardAnalyzer分词 package cn.lucene; import java.io.IOException; import o ...

  10. 在16aspx.com上下了一个简单商品房销售系统源码,怎么修改它的默认登录名和密码

    你可以打开那个连接数据库的网页,一般都是conn.aspx,里边有数据库的登录名称和密码