嵌套while循环计数器不返回内循环函数

时间:2014-02-24 11:30:47

标签: python while-loop counter break continue

我有一个计数器函数counter(),它应该首先计数到2并返回一个函数 h()然后继续计数到3并返回函数g()并中断。

def h():

    return "hi"

def g():

    return "hallo"

def counter():
    i = 0
    # If i is equal or less than 2, return the function h() and continue
    while i <= 2:
        i = i +1
        return h(),i
        continue

        # If i equals 3, return function g() and break/end counting
        # The current issue with this code is that the function g()
        # isn't returned and the condition itself doesn't seem to
        # respond, or count up to 3 from 2.

        if i == 3:

            return g()



    return i
print counter()

2 个答案:

答案 0 :(得分:1)

return h(),i

以上行从函数返回,其余代码未运行。

你正在寻找print()吗?

答案 1 :(得分:1)

您的问题是return声明。

当遇到return语句时,函数终止,然后将返回值传递给调用者(或None)。

这意味着您的代码只有在遇到第一个return之后才能运行,然后您的循环才会退出。

也许您正在寻找yieldprint