python练习06_20200809(实现四舍五入&reduce函数)
程序员文章站
2022-04-11 21:54:42
1、实现四舍五入,禁止使用python内建函数。func(soure_num, precise),source_num为需要处理的数据,precise为需要保留的位数,\例如:a=45.3546,func(a, 1),返回结果为45.4,func(a, 2)返回结果为45.35def new_round(number, precise=0): digit = 10 ** precise num2 = float(int(number * digit)) print(di....
1、实现四舍五入,禁止使用python内建函数。
func(soure_num, precise),source_num为需要处理的数据,precise为需要保留的位数,\
例如:a=45.3546,func(a, 1),返回结果为45.4,func(a, 2)返回结果为45.35
def new_round(number, precise=0):
digit = 10 ** precise
num2 = float(int(number * digit))
print(digit, num2)
# 找出四舍五入位的数字
find_index = str(number).find('.')
tag = str(number)[find_index + precise + 1]
# 此数与5判断
if number >= 0:
if int(tag) >= 5:
return (num2 + 1) / digit
else:
return num2 / digit
else:
if int(tag) >= 5:
return (num2 - 1) / digit
else:
return num2 / digit
a = 45.3546
b = 2
print('原数字为{},保留小数点后{}位,四舍五入的结果是{}'.format(a, b, new_round(a, b)))
2、实现reduce的功能,请自行百度内建函数reduce的功能。
reduce() 函数会对参数序列中元素进行累积。
函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:
用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,
得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。
reduce(f,[x1,x2,x3,x4,x5]) = f(f(f(f(x1,x2),x3),x4),x5)
reduce(function, iterable[, initializer])
function -- 函数,有两个参数
iterable -- 可迭代对象
initializer -- 可选,初始参数
def test_reduce(function, iterable, initializer=None):
it = iter(iterable)
if initializer is None:
value = next(it)
else:
value = initializer
for element in it:
value = function(value, element)
return value
print(test_reduce(lambda x, y: x + y, range(5), 8))
参考链接:https://docs.python.org/3.8/library/functools.html
本文地址:https://blog.csdn.net/passion_for_life/article/details/107899604