1-1/2+2/3-3/5+4/8-5/13+...的前n项和,n由用户输入(n>0),结果用str.format()方法保留小数点后6位数字输出。
def fenmu(n):
if n==1:
print(1)
elif n==2:
print(2)
else:
print(fenmu(n-1)+fenmu(n-2))
def fenzi(n):
if n==1:
print(1)
else:print(n-1)
a=eval(input())
sign=1
b=0
for i in range(1,a+1):
b=b+fenzi(i)/fenmu(i)sign
sign=sign(-1)
print(b)
unsupported operand type(s) for /: 'NoneType' and 'NoneType'
我不知道怎么解决
修改一下,让他不报错且能运行
def fenmu(n):
if n==1:
return 1
elif n==2:
return 2
else:
return fenmu(n-1)+fenmu(n-2)
def fenzi(n):
if n==1:
return 1
else:
return n-1
a=eval(input())
a = int(a)
sign=1
b=0
for i in range(1,a+1):
b=b+fenzi(i)/fenmu(i)*sign
sign=sign*(-1)
print("%.6f"%b)
你这fenzi(i)/fenmu(i),两个函数都没有返回值,弄个个空/空,没懂你想实现啥功能
把print换成return就好了
要有返回值才行哦 return结果
接收结果