测试与调试提示

2.1  在交互模式输入一个python语句就会执行一个。在调试程序时,这种模式尤其有用。

2.2  在一个文件调用python解释器后,解释器会在文件中的最后一个语句执行之后推出。然而,如果使用-i选项(例如python -i file.py)针对文件调用解释器,会导致编译器在执行了文件中的语句后进入交互模式。这非常使用于调试程序。

2.3  如果一个表达式里包含许多运算符,请务必参考运算符优先级表,合适表达式中的运算符按自己希望的顺序执行,如表达式过于复杂以至于无法确定顺序,不妨将表达式分割成几个小语句,或干脆用圆括号强行规定顺序--在代数表达式中也可以采用一样的做法。注意,某些运算符(比如求幂运算符**)是按右到左顺序关联的,而非从左到右。

2.4  为避免难以察觉的错误,务必在Python程序中采用统一和正确的缩进。

4.1  和在整个程序中更新重复的代码相比,更新函数显然更容易。

4.2  即使绝对肯定程序没有bug,也应在if/elif/else结构中添加一个默认的else条件。

4.3  通常应避免将所有标识符从一个模块导入另一个模块的命名空间。只有可信来源提供的模块,才可考虑这种导入方法。在可信模块的文档中,应清楚说明可用这样的语句导入模块

5.1  在不接受负下标的其他程序语言中,如果不慎计算出负下标,会导致运行时错误。在python中,不慎出现的负下标会导致非严重逻辑错误,程序继续运行,只是产生无效结果。

5.2  遍历序列时,正的序列下标应小于序列元素总数(换言之,下标不能大于序列长度)。另一方面,负的序列下标应等于或大于序列元素总数的负数。循环终止条件应能避免访问超出这个范围的元素。

5.3  采用传值,如果对被调用的函数的拷贝进行修改,不会影响调用代码中原始变量值。这有助于避免失误,确保能开发出正确和可靠的软件系统。

python测试与调试提示的更多相关文章

  1. 全功能Python测试框架:pytest

    python通用测试框架大多数人用的是unittest+HTMLTestRunner,这段时间看到了pytest文档,发现这个框架和丰富的plugins很好用,所以来学习下pytest.   imag ...

  2. Python测试 ——开发工具库

    Web UI测试自动化 splinter - web UI测试工具,基于selnium封装. selenium - web UI自动化测试. mechanize- Python中有状态的程序化Web浏 ...

  3. python测试开发django-37.外键(ForeignKey)查询

    前言 前面在admin后台页面通过设置外键,可以选择下拉框的选项,本篇主要讲解关于外键(ForeignKey)的查询 models设计 在上一篇的基础上新增一个BankName表,Card表通过外键关 ...

  4. python测试开发django-36.一对一(OneToOneField)关系查询

    前言 前面一篇在xadmin后台一个页面显示2个关联表(OneToOneField)的字段,使用inlines内联显示.本篇继续学习一对一(OneToOneField)关系的查询. 上一篇list_d ...

  5. WIFI 测试和调试

    WIFI测试和调试 本文将介绍如何使用 ASOP 中提供的工具测试和调试 WLAN 实现. 测试 为了测试 WLAN 框架,AOSP 提供了一系列单元测试.集成测试 (ACTS) 和 CTS 测试. ...

  6. python 测试框架nose

    python测试框架nose nose不是python自带模块,这里我才用pip的方式安装 pip install nose 这样就完成了安装,然后再确认下是否安装成功了,直接打开cmd输入noset ...

  7. 全面理解Python中的类型提示(Type Hints)

    众所周知,Python 是动态类型语言,运行时不需要指定变量类型.这一点是不会改变的,但是2015年9月创始人 Guido van Rossum 在 Python 3.5 引入了一个类型系统,允许开发 ...

  8. 《Python测试开发技术栈—巴哥职场进化记》—软件测试工程师“兵器库”

    上文<Python测试开发技术栈-巴哥职场进化记>-初来乍到,请多关照 我们介绍了巴哥入职后见到了自己的导师华哥,第一次参加团队站会,认识了团队中的开发小哥哥和产品小姐姐以及吃到了公司的加 ...

  9. Python测试框架pytest命令行参数用法

    在Shell执行pytest -h可以看到pytest的命令行参数有这10大类,共132个 序号 类别 中文名 包含命令行参数数量 1 positional arguments 形参 1 2 gene ...

随机推荐

  1. POJ 3243 Clever Y | BSGS算法完全版

    题目: 给你A,B,K 求最小的x满足Ax=B (mod K) 题解: 如果A,C互质请参考上一篇博客 将 Ax≡B(mod C) 看作是Ax+Cy=B方便叙述与处理. 我们将方程一直除去A,C的最大 ...

  2. 虚拟机——mnt_hgfs下无目录情况解决

    /mnt/hgfs下无目录情况解决: VMware8虚拟机安装Ubuntu 11.10使用share folders共享目录将虚拟机掉电关闭(不能暂停),设置share folders目录,重启虚拟机 ...

  3. yii2.0查询慢的原因

    最近使用Yii2.0来搭建项目,测试的时候发现无论是请求列表数据还是发布数据,都很慢,然后我一步一步打印时间来查看哪里的问题,始终找不到原因,最后在网上看到这篇: 'db' => [ 'clas ...

  4. spring in action学习笔记一:DI(Dependency Injection)依赖注入之CI(Constructor Injection)构造器注入

    一:这里先说一下DI(Dependency Injection)依赖注入有种表现形式:一种是CI(Constructor Injection)构造方法注入,另一种是SI(Set Injection) ...

  5. 使用java mail的网易smtp协议 发送邮件

    package com.enation.newtest; import java.security.GeneralSecurityException; import java.util.Propert ...

  6. Gradle for Android(三)多渠道打包、配置签名信息

    多渠道打包 国内有太多Android App市场,每次发版几十个渠道包.还好Android Gradle给我们提供了productFlavors,我们可以对生成的APK包进行定制. productFl ...

  7. [bzoj1433][ZJOI2009]假期的宿舍——二分图

    题目大意 传送门 题解 显然是二分图匹配. 用一些方法建图就好了. 要注意的是: 本题有多组数据!!! 初始化一定要注意!!! 代码 #include <bits/stdc++.h> us ...

  8. OPEN SUSE LINUX

    1. 把中文界面变成英文界面 yast2->system->language: 主要语言: 美式英语US 2. 使用root用户默认登录 Ubuntu使用root登录        Ubu ...

  9. android hook 框架 xposed 如何实现注入

    Android so注入-libinject2 简介.编译.运行 Android so注入-libinject2  如何实现so注入 Android so注入-Libinject 如何实现so注入 A ...

  10. SQL 数据库函数

    字符串函数 lower(字符串表达式) | select lower('ABCDEF')返回 abcdef | 返回大写字符数据转换为小写的字符表达式. upper(字符串表达式) | select ...