| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1801 人关注过本帖
标题:PYthon新手 关于遍历嵌套列表中使用DEF 自定义函数 print 和 return的问题
只看楼主 加入收藏
xiaoxin007
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2019-12-12
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
PYthon新手 关于遍历嵌套列表中使用DEF 自定义函数 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)


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?
搜索更多相关主题的帖子: 打印 return print DEF 函数 
2019-12-12 15:32
fall_bernana
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:17
帖 子:243
专家分:2106
注 册:2019-8-16
收藏
得分:20 
以下是引用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.
2019-12-12 16:15
xiaoxin007
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2019-12-12
收藏
得分:0 
回复 2楼 fall_bernana
非常感谢您的回复  很用帮助  
2019-12-12 17:30
快速回复:PYthon新手 关于遍历嵌套列表中使用DEF 自定义函数 print 和 return的 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015025 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved