基于Python测试程序是否有错误


Posted in Python onMay 16, 2020

1、首先介绍简单的try......except尝试运行的放例如下面的图和代码来简单介绍下:

def test(x,y):
  print(x+y)
try:
  test()
except:
  print('Error')
test(2,4)

test测试的函数,没传参数的x,y,函数结果是要答应x加y的和

try:试着执行test()函数,正常就执行函数并打印x加y的和

except:否则 打印'Error' 因为我这test没有给x,y定义传参数,所以会走到except

结果:

基于Python测试程序是否有错误

2、我们以上次排球比赛程序为例子做测试:

from random import random
def printIntro():     #打印程序介绍信息
  print("10号张颖慧进行比赛分析结果:")
  print("这个程序模拟两个选手A和B的某种竞技比赛")
  print("程序运行需要A和B的能力值(以0到1之间的小数表示)")
def getInputs():      #获得程序运行参数
  a = eval(input("请输入选手A的能力值(0-1): "))
  b = eval(input("请输入选手B的能力值(0-1): "))
  n = eval(input("模拟比赛的场次: "))
  return a, b, n
def simNGames(n, probA, probB):  # 进行N场比赛
  winsA, winsB = 0, 0
  for i in range(n):
    for j in range(7):      #进行7局4胜的比赛
      scoreA, scoreB = simOneGame(probA, probB)
      if scoreA > scoreB:
        winsA += 1
      else:
        winsB += 1
  return winsA, winsB
try:
  simNGames(0.55)
except:
  print("simNGames Error")
  
def gameOver(a,b):        #正常比赛结束
  return a==24 or b==24
def gameOver2(a,b):       #进行抢12比赛结束
  if abs((a-b))>=2:
    return a,b
def simOneGame(probA, probB):     #进行一场比赛
  scoreA, scoreB = 0, 0      #初始化AB的得分
  serving = "A"        
  while not gameOver(scoreA, scoreB):   #用while循环来执行比赛
    if scoreA==10 and scoreB==10:
      return(simtwoGame2(probA,probB))
    if serving == "A":
      if random() < probA:      ##用随机数生成胜负
        scoreA += 1
      else:
        serving="B"
    else:
      if random() < probB:
        scoreB += 1
      else:
        serving="A"
  return scoreA, scoreB
try:
  simOneGame(0.54)
except:
  print("simNGame Error")
  
def simtwoGame2(probA,probB):
  scoreA,scoreB=23,23
  serving = "A"
  while not gameOver2(scoreA, scoreB):
    if serving == "A":
      if random() < probA:
        scoreA += 1
      else:
        serving="B"
    else:
      if random() < probB:
        scoreB += 1
      else:
        serving="A"
  return scoreA, scoreB
try:
  simtwoGame2(0.44,0.66)
except:
  print("simNGame2 Error")
  
def printSummary(winsA, winsB):
  n = winsA + winsB
  print("竞技分析开始,共模拟{}场比赛".format(n))
  print("选手A获胜{}场比赛,占比{:0.1%}".format(winsA, winsA/n))
  print("选手B获胜{}场比赛,占比{:0.1%}".format(winsB, winsB/n))
def main():
  printIntro()
  probA, probB, n = getInputs()
  winsA, winsB = simNGames(n, probA, probB)
  printSummary(winsA, winsB)
main()

这个代码中,在一些函数后用try.....except测试了一遍,如果有错误会分别对某个函数进行报错。

因为小编在参数中故意写错,故会出现错误

运行结果如下:

基于Python测试程序是否有错误

当然还可以执行多个函数及条件的测试都可以,这样可以实现自动化测试业务代码,还可以穿插在程序中你需要的地方

做检测等,这样你的程序会按流程走,这块又可以得到你要的测试效果。来看看代码如下:

x = 0
lis_y = [i for i in range(80,85)]

def test(x,y):
  print(x+y," ")

def test1(x,y):
  print(x*y)

try:
  while x < 20:
    for y in lis_y:
      test(x,y)
      test1(x,chr(y))
      x+=1
except:
  print('Error')

运行结果如下:

基于Python测试程序是否有错误

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python装饰器基础详解
Mar 09 Python
Python常见格式化字符串方法小结【百分号与format方法】
Sep 18 Python
Python numpy 提取矩阵的某一行或某一列的实例
Apr 03 Python
浅谈Python traceback的优雅处理
Aug 31 Python
对pandas读取中文unicode的csv和添加行标题的方法详解
Dec 12 Python
python实时检测键盘输入函数的示例
Jul 17 Python
Mac 使用python3的matplot画图不显示的解决
Nov 23 Python
python模拟斗地主发牌
Apr 22 Python
Python实现SMTP邮件发送
Jun 16 Python
Python 求向量的余弦值操作
Mar 04 Python
Python import模块的缓存问题解决方案
Jun 02 Python
Python NumPy灰度图像的压缩原理讲解
Aug 04 Python
关于matplotlib-legend 位置属性 loc 使用说明
May 16 #Python
Python matplotlib画图时图例说明(legend)放到图像外侧详解
May 16 #Python
python_matplotlib改变横坐标和纵坐标上的刻度(ticks)方式
May 16 #Python
使用Python matplotlib作图时,设置横纵坐标轴数值以百分比(%)显示
May 16 #Python
Python验证码截取识别代码实例
May 16 #Python
基于plt.title无法显示中文的快速解决
May 16 #Python
基于python生成英文版词云图代码实例
May 16 #Python
You might like
WINDOWS下php5.2.4+mysql6.0+apache2.2.4+ZendOptimizer-3.3.0配置
2008/03/28 PHP
PHP注释实例技巧
2008/10/03 PHP
PHP Parse Error: syntax error, unexpected $end 错误的解决办法
2012/06/05 PHP
解析phpstorm + xdebug 远程断点调试
2013/06/20 PHP
php生成图片验证码的实例讲解
2015/08/03 PHP
Code:loadScript( )加载js的功能函数
2007/02/02 Javascript
JQuery对表格进行操作的常用技巧总结
2014/04/23 Javascript
使用phantomjs进行网页抓取的实现代码
2014/09/29 Javascript
完美兼容各大浏览器的jQuery插件实现图片切换特效
2014/12/12 Javascript
JS运动相关知识点小结(附弹性运动示例)
2016/01/08 Javascript
基于Javascript实现二级联动菜单效果
2016/03/04 Javascript
ES6中Generator与异步操作实例分析
2017/03/31 Javascript
angular框架实现全选与单选chekbox的自定义
2017/07/06 Javascript
浅谈React Native Flexbox布局(小结)
2018/01/08 Javascript
Vue单页面应用保证F5强刷不清空数据的解决方案
2018/01/31 Javascript
详解微信小程序「渲染层网络层错误」的解决方法
2021/01/06 Javascript
Python中的迭代器漫谈
2015/02/03 Python
Python3.x中自定义比较函数
2015/04/24 Python
python删除列表中重复记录的方法
2015/04/28 Python
详解Python中映射类型的内建函数和工厂函数
2015/08/19 Python
浅析Python数据处理
2018/05/02 Python
Python查看微信撤回消息代码
2018/06/07 Python
利用OpenCV和Python实现查找图片差异
2019/12/19 Python
浅析Python 字符编码与文件处理
2020/09/24 Python
教你如何用python操作摄像头以及对视频流的处理
2020/10/12 Python
接口自动化多层嵌套json数据处理代码实例
2020/11/20 Python
python 获取域名到期时间的方法步骤
2021/02/10 Python
三年大学生活自我鉴定
2014/01/21 职场文书
《花的勇气》教后反思
2014/02/12 职场文书
劲霸男装广告词
2014/03/21 职场文书
婚纱摄影师求职信范文
2014/04/17 职场文书
青春无悔演讲稿
2014/05/08 职场文书
诚信的演讲稿范文
2014/05/12 职场文书
预备党员转正考核材料
2014/06/03 职场文书
2014年干部作风建设总结
2014/10/23 职场文书
Django rest framework如何自定义用户表
2021/06/09 Python