超简单的四则运算效能分析

超简单的四则运算效能分析

psp表格

解题思路及设计过程

题目要求:随机自动生成小学四则运算题目(注意是给小学生用的,要是结果出现负数的话他们会迷茫的!)
解题思路:这次作业重点在效能分析,故只考虑最简单的情况,将题目分为几个函数来实现:
(1)随机生成表达式函数(getEquation):利用python自带的random库的random.randint随机生成09的整数作为表达式数字、随机生成14的整数代表运算符。
(2)匹配运算符函数(choose):随机生成1~4的整数分别代表:+ 、- 、* 、/ 四个运算符,利用匹配函数得到运算符。
(3)测试函数(test):取不同数量的样例,利用python的time库对运行时间进行分析

代码说明

import random
import time
def getEquation(): # 生成表达式
equation = ""
opration = ""
number = 0
number = random.randint(1,9)
equation += str(number) # 将数字放进式子里
opration = choose(random.randint(1,4)) # 随机生成符号+ - * ÷
equation += opration # 将符号放进式子里
answer = number
if opration"÷": # 分母不为0
number = random.randint(1,9)
answer /= number
elif opration
"+":
answer += number
number = random.randint(0,9) # 随机生成0~9
elif opration"-":
answer -= number
number = random.randint(0,9) # 随机生成0~9
elif opration
"*":
answer = number
number = random.randint(0,9) # 随机生成0~9
equation += str(number) # 将数字放进式子里
equation += '=' # 将=放进式子里
print(equation)
return answer
def choose(n): # 匹配符号
if n1:
return "+"
elif n
2:
return "-"
elif n==3:
return "
"
elif n==4:
return "÷"
def test():# 测试函数
for i in range(10000):
answer = getEquation()
start_time = time.time()
test() # 待测试的函数
end_time = time.time()
print ('time cost:' ,str(end_time - start_time))

测试运行

测试10万个例子,用时:1.98s

下图是用pycharm的profile做的单元测试,由于代码比较简单,只有一个主要函数,所以结果为:getEquation函数占用绝大部分耗时(98.2%)choose函数占用0.9%的耗时。

posted @ 2018-04-19 13:48  RainyH  阅读(677)  评论(2编辑  收藏  举报