超简单的四则运算效能分析
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 n2:
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%的耗时。