Python:我的函数将打印连续的输出,但不会返回它们。

2024-10-04 11:25:39 发布

您现在位置:Python中文网/ 问答频道 /正文

首先,我想不出一个合适的标题。其次,我对编程很陌生。总之,我有这个功能:

def addtrinumbs():
    x = 1
    list1 = []
    while x > 0:
        list1.append(x)
        x = x + 1
        y = sum(list1)
        print y

这将在y改变时连续打印y。我想做的是:

^{pr2}$

所以我希望addone()连续地从addtrinumbs()获取输入。我觉得有一个真正的基本和简单的概念,我错过了。当我运行它时,我只得到1个输出,即2。我读过发电机,我不确定这是否是我需要使用的。我想我明白它们的用途,但我找不到一个与我的问题相关的例子。任何帮助或转向正确的方向都会很好,谢谢。在


Tags: 功能概念标题def编程发电机sumprint
3条回答

当函数返回某个值时,该函数将自动中断并退出该函数。请在this question上查看有关此内容的详细信息。您可以选择的一个方法是先将要返回的内容附加到列表中,然后返回该列表。在

您似乎缺少了生成器的概念addtrinumbs应该生成值,而不是返回值。(它显然永远不会终止,但是,对于生成器,没关系)。在

addone将以生成器作为参数,并在其上循环:

for x in numbers:
    print(x+1)

这将产生一个无休止的数字流,最好有一个退出条件一些但是,这是一个通用的概念。在

当函数addtrinumbs在第一个循环中查看return语句时,它退出该函数,返回相关的值。这就是为什么它只返回一个值。 您需要将值存储在一个列表或其他内容中,然后返回该列表。所以,取一个list2 = [],而不是return y,而是list2.append(y),然后最终返回列表return list2。在

相关问题 更多 >