Python:我的函数将打印连续输出但不会 return 它们。
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。我已经阅读了有关生成器的信息,但我不确定这是否是我需要使用的。我想我明白它们的用途,但我找不到与我的问题相关的例子。任何帮助或指导正确的方向都会很好,谢谢。
当函数return有东西时,函数会自动中断并退出函数。在 上查看更多相关信息。您有一个选择是首先将您想要的 return 附加到列表,然后 return 该列表。
当函数 addtrinumbs
在第一个循环中查看 return 语句时,它退出函数,return 获取相关值。这就是为什么它 returning 只有一个值。
您需要将值存储在列表或其他内容中,然后 return 列表。因此,使用 list2 = []
而不是 return y
,执行 list2.append(y)
,然后最终 return 列表,return list2
.
您似乎缺少 generators 的概念——addtrinumbs
应该 yield 值而不是 return 他们。 (它显然永远不会终止,但是,对于生成器,没关系。
addone
将生成器作为参数并在其上循环:
for x in numbers:
print(x+1)
这将发出无穷无尽的数字流 -- 最好有一个退出条件 somewhere -- 但是,这是要使用的一般概念。
首先,我想不出一个合适的标题。其次,我对编程还很陌生。不管怎样,我有这个功能:
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。我已经阅读了有关生成器的信息,但我不确定这是否是我需要使用的。我想我明白它们的用途,但我找不到与我的问题相关的例子。任何帮助或指导正确的方向都会很好,谢谢。
当函数return有东西时,函数会自动中断并退出函数。在
当函数 addtrinumbs
在第一个循环中查看 return 语句时,它退出函数,return 获取相关值。这就是为什么它 returning 只有一个值。
您需要将值存储在列表或其他内容中,然后 return 列表。因此,使用 list2 = []
而不是 return y
,执行 list2.append(y)
,然后最终 return 列表,return list2
.
您似乎缺少 generators 的概念——addtrinumbs
应该 yield 值而不是 return 他们。 (它显然永远不会终止,但是,对于生成器,没关系。
addone
将生成器作为参数并在其上循环:
for x in numbers:
print(x+1)
这将发出无穷无尽的数字流 -- 最好有一个退出条件 somewhere -- 但是,这是要使用的一般概念。