两种方法,实现了两个函数,实现的功能均为加法,但写的稍微完善一点。
import sys
#python2 中的reduce被3删掉了
if sys.version_info.major < 3 :
pass
else:
from functools import reduce
from operator import add
def myAdd(startNum,endNum):
'''
func:
利用reduce、add和高阶函数进行连加运算
Input:
startNum 起始位置
endNum 结束位置
Output:
result 计算结果
'''
result = 0
try:
if(startNum > (endNum+1)):
raise Exception("参数顺序错误")
else:
result = reduce(add,range(startNum,endNum+1))
#except语句来捕获异常的参数 python2中直接错误类型和参数
#python3中得
except (Exception) as Argument :
print("错误: ",Argument,"\n起始位置类型验证:",isinstance(startNum,int),"\n终止位置类型验证:",isinstance(endNum,int))
else:
print("算法运行成功:",result)
return result
myAdd(1,100)
def myAdd(startNum,endNum):
'''
func:
利用sum对于迭代器的支持进行连加运算
Input:
startNum 起始位置
endNum 结束位置
Output:
result 计算结果
'''
result = 0
try:
result = sum(range(startNum,endNum+1))
#except语句来捕获异常的参数 python2中直接错误类型和参数
#python3中得
except (Exception) as Argument :
print("错误: ",Argument,"\n起始位置类型验证:",isinstance(startNum,int),"\n终止位置类型验证:",isinstance(endNum,int))
else:
print("算法运行成功")
return result
myAdd(1,"100")