今天的练习题如下,请编写Python程序完成下题:
编写一个函数,当用户输入为偶数时,调用函数求1/2+1/4+…+1/n,当输入为奇数时,调用函数1/1+1/3+…+1/n
用for循环+if语句编写可能会比较啰嗦,所以这里使用了列表生成式来写这个函数,这样看起来会紧凑一点。
注意需要使用math函数才能引用ceil方法。
import numpy as np
import math
def excercise0224(input_int):
times = math.ceil(input_int/2)
if input_int%2 :
series = [ 1/(2*i-1) for i in range(1,times+1) ]
else :
series = [ 1/(2*i) for i in range(1,times+1) ]
return series
def get_string(input_int):
times = math.ceil(input_int/2)
sum_str = ""
if input_int%2 :
for i in range(1,times):
sum_str += "1/"+str(2*i-1)+' + '
sum_str += "1/"+str(2*times-1) + ' = '
else :
for i in range(1,times):
sum_str += "1/"+str(2*i)+' + '
sum_str += "1/"+str(2*times) + ' = '
return sum_str
def solution0224(input_int):
print(get_string(input_int),np.array(excercise0224(input_int)).sum())
solution0224(7)
solution0224(8)
输出的结果如下:
1/1 + 1/3 + 1/5 + 1/7 = 1.676190476190476
1/2 + 1/4 + 1/6 + 1/8 = 1.0416666666666665
[Finished in 1.4s]