3.Python练习 (20200317)

Python练习 (20200317)

1.编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n

 1 # 方法一:函数定义
 2 def func(x):
 3     if x%2 == 0:  # 偶数
 4         sum = 0
 5         li = range(2,x+1,2)  # 生成2到x的偶数列表
 6         for i in li:   # 对列表中每一个元素操作
 7             sum += 1/i
 8         return sum
 9     else:   # 奇数
10         sum = 0
11         li = range(1,x+1,2)   # 生成1到x的奇数列表
12         for i in li:   # 对列表中的每一个元素操作
13             sum += 1/i
14         return sum
15 n  = int(input('输入数字:'))
16 print(func(n))
17 # 输出
18 # =>输入数字:20
19 # =>1.4644841269841269

20 # 方法二:高阶函数调用 21 from functools import reduce # 导入reduce 22 def function(x): # 定义函数()根据给定的参数是否是奇偶数生成不同的列表 23 if x%2 == 0: 24 li = list(range(2,x+1,2)) # 生成偶数列表 25 return li 26 else: 27 li = list(range(1,x+1,2)) # 生成奇数列表 28 return li 29 def res(func,y): # 定义运行函数 30 daoshu = list(map(lambda x:1/x,func(y))) # 使用map函数 31 result = reduce(lambda x,y:x+y,daoshu) # 使用reduce函数 32 return result 33 n = int(input('输入数字:')) 34 print(res(function,n)) 35 # 输出 36 # =>输入数字:19 37 # =>2.1332555301595546

 

posted @ 2020-03-17 21:52  星落……  阅读(93)  评论(0)    收藏  举报