Python—如何使用while语句从函数返回值?

Python—如何使用while语句从函数返回值?,python,function,while-loop,return,Python,Function,While Loop,Return,因此,下面概述的代码将参数发送到我创建的名为bsearch的函数,我希望函数main()发送参数,其中键参数从11(11,10,9,8,7…)缩减1,直到它达到0。我希望每次输出值计数——目前它只返回第一个计数。如何让它在每次while循环后返回 def main(): ilist = [x+1 for x in range(10)] key = 11 start = 0 end = 10 while key > 0: count =

因此,下面概述的代码将参数发送到我创建的名为bsearch的函数,我希望函数main()发送参数,其中键参数从11(11,10,9,8,7…)缩减1,直到它达到0。我希望每次输出值计数——目前它只返回第一个计数。如何让它在每次while循环后返回

def main():
    ilist = [x+1 for x in range(10)]
    key = 11
    start = 0
    end = 10
    while key > 0:
        count = b(ilist,key,start,end)
        key = key -1
        return count

我想你可能想看一些教程,但我想你会想要这样的东西:

def main():
    count_list = []
    for x in range(1,11):
        count_list.append(bsearch(x))  # append your results to a list
    return count_list  # return out of the scope of the loop
或者使用评论中建议的列表理解:

def main():
    return [bsearch(x) for x in range(1,11)]

尝试使用生成器并使用
yield
关键字使用
return
语句退出代码的当前
def
块,因此在while循环的第一次迭代后,代码停止运行以使用yield作为答案。您还可以使用列表理解将其缩短。返回[b在范围(1,11)内搜索(x)]