Collatz序列,最后返回值中None应该怎么处理掉

新手学习Python,章节作业中需要编写Collatz序列,然后自己编写这样的代码

这是关于Collatz序列的代码练习

print('Enter number :')
def Collatz():

try:    num = int(input())    while num !=1 :        if num %2 == 0:            num = num // 2
            print(num)
        elif num %2 == 1:            num = 3*num+1
            print(num)
except ValueError:    print('Error! Please Enter number')

print(Collatz())

Enter number :
5
16
8
4
2
1
None

如上返回值中却意外的出现了None,想问这个None是因为代码中的哪个点引起的,以及应该如何去除?
之前尝试过if num == 1:break,或者调用sys.exit()都没法解决


莫回无
浏览 672回答 1
1回答

蝴蝶不菲

因为你的这句:print(collatz())collatz作为函数, 没有返回值的时候默认返回None. 这个None就被print()函数打印出来了.所以你直接这样就好:collatz()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python