新手学习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()都没法解决
因为你的这句:
collatz
作为函数, 没有返回值的时候默认返回None
. 这个None
就被print()
函数打印出来了.所以你直接这样就好: