如何在 Python3 中向调用函数返回更多值并显示结果,目前它只打印第一个值而不增加? [复制]

Posted

技术标签:

【中文标题】如何在 Python3 中向调用函数返回更多值并显示结果,目前它只打印第一个值而不增加? [复制]【英文标题】:How to return more values to the calling function in Python3 and display the result, currently it's printing only first value without increment? [duplicate] 【发布时间】:2019-06-19 05:33:24 【问题描述】:

问题:查找给定范围(包括)内的奇数。 l = 左侧范围,r = 右侧范围。例如:

输入:

l=2
r=5

预期输出:

3
5

因为我已经用下面所示的一种方法完成了这个程序,

def findOddNumber(l,r):
for num in range(l,r):
    if(num%2!=0):
        print(num)
l=2
r=5
res=[]
findOddNumber(l,r)

我希望将值返回给调用函数,而不是像上面那样在用户定义的函数中打印,我试过这样:

def findOddNumber(l,r):
for num in range(l,r):
    if(num%2!=0):
        return num
l=2
r=5
res=findOddNumber(l,r)
print(res)

输出:

3

预期输出:

3
5

【问题讨论】:

您只能return 一次。您可以构建并返回一个序列(列表、元组......)或查看可以yield 多个值的生成器。 【参考方案1】:

您可以使用列表而不是打印只是附加到列表中。然后你返回列表

def findOddNumber(l,r):
    res=[]
    for num in range(l,r+1):
        if(num%2!=0):
            res.append(num)
    return res

l=2
r=5
res=findOddNumber(l,r)
print(res)

【讨论】:

@Goutham Vijay 对不起,我的错。您应该将 range(l,r) 更改为 range(l,r+1) 因为范围中的最终值不包括在内 感谢您的帮助....这是缩进错误

以上是关于如何在 Python3 中向调用函数返回更多值并显示结果,目前它只打印第一个值而不增加? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何执行带有承诺的函数并通过 API 调用多次检查其值并使用该值执行另一个函数?

如何简洁地比较许多派生类的基类的值并调用它们的函数?

如何在多个异步调用中向 NodeJS 中的数据库发送响应?

如何从exe获取返回值并重新启动它

如何在 Plone 4.1.4 中向 intranet_workflow 添加更多自定义状态

shell脚本调JAVA程序,获取JAVA程序返回值并echo输出