我有一个返回或应该返回从数据库表中选择的所有行的函数。但是,它仅返回第一行。我不太明白为什么在使用'return'关键字时不返回其余行。该代码有点长,所以我包括了一个示例代码,它的功能有些相似。我相信,如果我可以对此进行修复,则应该能够在主代码中对其进行修复。我的示例代码如下。在此代码中,仅打印黄色。请有人知道为什么吗?
def color_choser():
colors = 'yellow', 'green', 'orange', 'blue', 'white', 'pupple', 'red', 'mangenta'
for color in colors:
return color
print(color_choser())
答案 0 :(得分:2)
当一个函数返回一个值时,它将停止,因此,当将该return语句放入for循环中时,您将告诉它在循环的第一次运行后停止。您可以简单地返回不带循环的颜色元组:
def color_choser():
colors = 'yellow', 'green', 'orange', 'blue', 'white', 'pupple', 'red', 'mangenta'
return colors
print(color_choser())
>>>'yellow', 'green', 'orange', 'blue', 'white', 'pupple', 'red', 'mangenta'
或者,如果由于某种原因需要循环(我猜您实际上并不只是在打印该颜色列表),则可以将所需的值附加到列表中并返回该列表:
def color_choser():
colorArray = []
colors = 'yellow', 'green', 'orange', 'blue', 'white', 'pupple', 'red', 'mangenta'
for color in colors:
colorArray.append(color)
return colorArray
print(color_choser())
>>>['yellow', 'green', 'orange', 'blue', 'white', 'pupple', 'red', 'mangenta']