前言:
如今各位老铁们对“python怎么求和”大致比较关切,看官们都想要剖析一些“python怎么求和”的相关知识。那么小编也在网络上搜集了一些有关“python怎么求和””的相关知识,希望姐妹们能喜欢,姐妹们快快来学习一下吧!说明
该函数可以实现:给定起始数,结尾数及步长,计算从起始数开始,以步长为间隔,到结尾数为止的所有数字的和,可以指定保留结果小数位数。参数说明:
startNum:起始数字
endNum:结尾数字
step:步长,必须为大于等于0的实数,否则默认为1
decimalLen:结果中保留的小数位数,只能设置0或正整数,否则默认使用startNum, endNum, step三者中最大的小数位数
源码
# 给定起始数,结尾数及步长,计算从起始数开始,以步长为间隔,到结尾数为止的所有数字的和,可以指定保留结果小数位数def mySum(startNum, endNum, step, decimalLen=-1): # 传参类型不对时直接返回false if not isinstance(startNum, (int, float)) or not isinstance(endNum, (int, float)) or not isinstance(step, ( int, float)): return False # 保留小数位数decimalLen如果设置的不是0或者正整数,默认都使用startNum, endNum, step三个参数中最大的小数位数 if not isinstance(decimalLen, int) or decimalLen < 0: decimalLen_startNum, decimalLen_endNum, decimalLen_step = 0, 0, 0 decimalLen_startNum_list = str(startNum).split('.') decimalLen_endNum_list = str(endNum).split('.') decimalLen_step_list = str(step).split('.') if len(decimalLen_startNum_list) == 2: decimalLen_startNum = len(decimalLen_startNum_list[1]) if len(decimalLen_endNum_list) == 2: decimalLen_endNum = len(decimalLen_endNum_list[1]) if len(decimalLen_step_list) == 2: decimalLen_step = len(decimalLen_step_list[1]) decimalLen = max([decimalLen_startNum, decimalLen_endNum, decimalLen_step]) # 步长为0或者开始的数字大于等于结尾的数字时,返回开始数和结尾数的和 if step == 0 or startNum >= endNum: sum = startNum + endNum if decimalLen == 0: sum = int(sum) else: sum = round(sum, decimalLen) return sum # 步长不能小于0,否则设置为默认值1 if step < 0: step = 1 sum = 0 while True: sum = sum + startNum startNum = startNum + step if startNum >= endNum: startNum = endNum sum = sum + startNum break if decimalLen == 0: sum = int(sum) else: sum = round(sum, decimalLen) return sum测试结果
# 引用if __name__ == '__main__': print('结果1:',mySum(1, 10, 2)) print('结果2:',mySum(-10, 10, 4, 3)) print('结果3:',mySum(-10, 10, -1)) print('结果4:',mySum(-101, 10, -1)) print('结果5:',mySum(1, 10, 1.443)) print('结果6:',mySum(1, 10, 1.443, 2)) print('结果7:',mySum(1, 10, 0, 0)) print('结果8:',mySum(4.342, 10.41221, 0)) print('结果9:',mySum(4.342, 10.41221, 0, 2)) print('结果10:',mySum(4.342, 10.41221, 0, 0))# 结果结果1: 35结果2: 0结果3: 0结果4: -5096结果5: 47.303结果6: 47.3结果7: 11结果8: 14.75421结果9: 14.75结果10: 14
标签: #python怎么求和