繁体   English   中英

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

[英]Python: My function will print continuous outputs but will not return them.

首先,我无法为此找到合适的标题。 其次,我是编程新手。 无论如何,我有这个功能:

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

更改时,它将连续打印y。 我想做的是这样的:

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

def addone(numbers):   
    x = numbers + 1   
    print x

addone(addtrinumbs())

所以我希望addone()连续从addtrinumbs()获取输入。 我觉得我缺少一个真正的基本概念和简单概念。 当我运行它时,我只会得到1的输出,即2。我已经阅读了有关生成器的信息,但是我不确定这是否是我需要使用的输出。 我想我了解它们的用途,但是找不到与我的问题有关的示例。 谢谢您的帮助或朝正确方向的指导。

您似乎缺少了生成器的概念addtrinumbs应该产生值而不是返回值。 (显然它将永远不会终止,但是对于生成器来说 ,这是可以的)。

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

for x in numbers:
    print(x+1)

这将发出无休止的数字流-最好在某些地方存在退出条件-但这是使用的一般概念。

当函数返回某些内容时,该函数将自动中断并退出该函数。 有关此问题的更多信息,请参见。 您必须选择的一种方法是,首先将要返回的内容附加到列表中,然后返回该列表。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM