#2
fall_bernana2019-12-12 16:15
以下是引用xiaoxin007在2019-12-12 15:32:06的发言: # 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) 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 有三个部分,就对第一部分,关于打印嵌套列表中的每一个元素,是否是先执行else部分之后再调用自定义函数本身后再执行If部分.第二就是关于使用print(print_list(l))后,3,5,8为什么会被打印出来.第三,使用内建函数return后为什么只打印出了3,5,8? 第一部分:是的 第二部分: print是内置函数.会先执行print_list(l)再打印print_list的返回值NULL,就像print(1+2),打印出来的是3 第三部分: 函数遇到return,会直接跳出print_list函数,返回结果return()里的值.这里会先计算print_list([3,5,8]),然后跳出print_list. |
# 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)
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
有三个部分,就对第一部分,关于打印嵌套列表中的每一个元素,是否是先执行else部分之后再调用自定义函数本身后再执行If部分.第二就是关于使用print(print_list(l))后,3,5,8为什么会被打印出来.第三,使用内建函数return后为什么只打印出了3,5,8?