1

我正在尝试为我的程序做一个开/关开关:(见后面###我在说什么)

while 1:
    str = raw_input("insert your word: ")
    n = input("insert your scalar: ")
    def string_times(str, n):
        return n * str
    print string_times(str, n)

    ###
    def switch(on,off):
        raw_input("On or off? ")
        if switch == "on":
            continue
        if switch == "off":
            break
    switch(on,off)

我得到一个 continue not in loop 错误。基本上,我想在程序运行一次后创建一个开或关开关。我要修复什么?

4

1 回答 1

11

您不能在嵌套函数中使用breakand 。continue改用函数的返回值:

def switch():
    resp = raw_input("On or off? ")
    return resp == "on":

while True:
    # other code

    if not switch():
        break

请注意,在循环中定义函数没有什么意义。在循环之前定义它们,因为创建函数对象需要一些性能(尽管很少)。

switch()函数不需要参数(您根本没有使用它们),并且continue也不需要。如果你没有跳出循环,当你到达终点时,它只会从顶部继续。

continue仅当您希望循环再次从顶部开始时才需要跳过循环中的其余代码

count = 0
while True:
    count += 1
    print count
    if loop % 2 == 0:
        continue

    print 'We did not continue and came here instead.'

    if count >= 3:
        break

    print 'We did not break out of the loop.'
于 2013-01-14T18:28:14.367 回答