使用代码时,输出结果总是有一个None
原代码如下:
def An(n):
for i in range(1,n+1):
if i!=n:
print('sin(',i,sep='',end='')
if i%2:
print('-',end='')
else:
print('+',end='')
else:
print('sin',n,sep='',end='')
for j in range(n-1):
print(')',end='')
def Sn(n):
for j in range(n-1):
print('(',end='')
for i in range(1,n+1):
if i!=n:
print(An(i),'+',n+1-i,')',sep='',end='')
else:
print(An(n),'+1',sep='',end='')
n=int(input())
Sn(n)
输出结果如下:
(sin1None+2)sin(1-sin2)None+1
查阅资料后发现:
python自定义函数使用return返回值,如果不用 return, 而用print输出值,这个函数默认还有一个返回值为None
故在原代码的每个函数中都添加 return ‘’
如下:
def An(n):
for i in range(1,n+1):
if i!=n:
print('sin(',i,sep='',end='')
if i%2:
print('-',end='')
else:
print('+',end='')
else:
print('sin',n,sep='',end='')
for j in range(n-1):
print(')',end='')
return ''#添加此处代码
def Sn(n):
for j in range(n-1):
print('(',end='')
for i in range(1,n+1):
if i!=n:
print(An(i),'+',n+1-i,')',sep='',end='')
else:
print(An(n),'+1',sep='',end='')
return ''#添加此处代码
n=int(input())
Sn(n)
输出结果如下:
((sin1+3)sin(1-sin2)+2)sin(1-sin(2+sin3))+1