热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何编写一个返回循环的函数?

如何解决《如何编写一个返回循环的函数?》经验,为你挑选了1个好方法。

我想知道函数是否可以返回一个循环?

我的代码如下:

def looping():
    a = [25,50,75,100, 200, 300]
    for x in a:
        return x
print(looping())

当我打印它时它返回:

输出:

[25]

预期产量:

25
50
75
100
200
300

这可能吗?



1> abarnert..:

首先,您现有代码的问题是,一旦您return,该功能结束.所以,你只需返回第一个值即可.


函数不能返回循环,因为循环不是一种值.

函数可以返回一个iterable,这是一个可以循环的值.有几种方法可以做到这一点:


yield在大多数其他答案中,您可以使用函数生成函数,因此它会返回所有事物的迭代器yield.

但是yield在循环内部只是一种笨拙的做法yield from,所以真的,你应该这样做:

def looping():
    a = [25, 50, 75, 100, 200, 300]
    yield from a
for x in looping():
    print(x)

您可以直接返回迭代器:

def looping():
    a = [25, 50, 75, 100, 200, 300]
    return iter(a)
for x in looping():
    print(x)

或者,最简单的是:序列(如列表)与迭代器一样可迭代.所以,如果你有一个列表,只需返回它:

def looping():
    a = [25, 50, 75, 100, 200, 300]
    return a
for x in looping():
    print(x)

虽然我们在这里,你甚至不需要一个明确的循环.你可以调用一个隐藏循环内部的函数,例如join:

print('\n'.join(looping()))

或者您甚至可以将迭代直接映射到print:

print(*looping(), sep='\n')

虽然在这种情况下,我认为循环是完全合理的,所以如果你对它感到满意,坚持下去.


推荐阅读
author-avatar
无言的歌slp_630
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有