首先,我无法找到合适的标题。其次,我对编程很陌生。无论如何,我有这个功能:
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.我已阅读有关发电机的信息,我不确定这是否是我需要使用的。我想我明白了它们的用途,但我找不到与我的问题有关的例子。在正确的方向上任何帮助或转向都会很好,谢谢。
答案 0 :(得分:1)
您似乎缺少生成器的概念 - addtrinumbs
产生值而不是返回值。 (它显然永远不会终止,但对于生成器,那没关系。)
addone
将生成器作为参数,循环将其作为参数:
for x in numbers:
print(x+1)
这会发出无数的数字流 - 最好是退出条件某些 - 但是,它是使用的一般概念。
答案 1 :(得分:0)
当函数返回某个内容时,该函数将自动中断并退出该函数。在this question上查看有关此内容的更多信息。您有一个选择是首先将您想要的内容追加到列表中,然后返回该列表。
答案 2 :(得分:0)
当函数addtrinumbs
查看第一个循环中的return语句时,它退出函数,返回相关值。这就是为什么它只返回一个值。
您需要将值存储在列表或其他内容中,然后返回列表。因此,取list2 = []
代替return y
,执行list2.append(y)
,然后最终返回列表return list2
。