在自定义函数中,我们常常会用到返回值,常常用的方式就是print和return,两者有什么区别呢
先看两个例子:
题目:
# L = [[3, 5, 8], 10, [[13, 14], 15, 18], 20]
# 1) 写一个函数print_list(lst) 打印出所有元素
# print_list(L) # 打印 3 5 8 10 13 14 ...
def print_list(L):
for l in L:
if type(l) is int:
print(l)
else:
print_list(l)
结果:
3 5 8 10 13 14 15 18 20
L = [[3, 5, 8], 10, [[13, 14], 15, 18], 20]
print_list(L)
就会将结果打印出来了
若是将上述的红色部分换成print(print_list(l))时,是什么结果呢
def print_list(L):
for l in L:
if type(l) is int:
print(l)
else:
print(print_list(l))
L = [[3, 5, 8], 10, [[13, 14], 15, 18], 20]
print_list(L)
结果如下:
3 5 8 None 10 13 14 None 15 18 None 20
若是将上述的红色部分换成return(print_list(l))时,是什么结果呢
def print_list(L):
for l in L:
if type(l) is int:
print(l)
else:
return(print_list(l))
L = [[3, 5, 8], 10, [[13, 14], 15, 18], 20]
print_list(L)
结果如下:
3 5 8
为什么三者的结果会不一样,第一种是直接调用自定义函数print_list(l),第二种是利用内建函数print打印并返回结果,第三种是利用内建函数return。自定义函数如果不使用return,那么返回的结果就是None。如果利用return,则返回时表示完成调用函数,并释放函数的空间。