python输出结果后面带着一个“None”

使用代码时,输出结果总是有一个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

发布了42 篇原创文章 · 获赞 5 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_45829462/article/details/103778891
今日推荐