Python Break Inside Function



我正在使用Python 3.5,我想在函数内使用break命令,但我不知道如何使用。我想这样写:

def stopIfZero(a):
    if int(a) == 0:
        break
    else:
        print('Continue')
while True:
    stopIfZero(input('Number: '))

我知道我可以用这段代码:

while True:
    a = int(input('Number: '))
    if a == 0:
        break
    else:
        print('Continue')

如果你不关心print('Continue')部分,你甚至可以这样做:while a != 0: a = int(input('Number: '))(只要a的值不是0)然而,我喜欢使用函数,因为其他时候它可以帮助很多。

谢谢你的帮助

通常,这是通过返回一些值来完成的,该值让您决定是否要停止while循环(即某些条件是否为真或假):

def stopIfZero(a):
    if int(a) == 0:
        return True
    else:
        print('Continue')
        return False
while True:
    if stopIfZero(input('Number: ')):
        break

一个函数不能代表它的调用者breakbreak必须在语法上位于循环内。

您要使用return,而不是break

break用于停止循环。

break语句,像C中一样,跳出最小的for或while循环。

return用于退出函数并返回一个值。也可以返回None

break关键字只能在循环示例中使用,并且必须在循环的作用域内。

将函数更新为只返回TrueFalse:

def is_zero(value):
    if value == 0:
        return True
    return False

然后在循环中,像这样简单地使用:

while True:
    try:
        value = int(input("Enter a value (0 to exit): "))
    except ValueError:
        # user entered a non-numeric value (e.g. a letter)
        # try asking again immediately instead of crashing :)
        print('Use numbers only, please')
        continue
    if is_zero(value):
        break
    print('Good entry. Continuing...')

你的stopIfZero函数也有些过载(即有不止一个责任),因为它不仅仅是检查一个值是否为零。例如:

  1. 将参数转换为int
  2. 打印消息,
  3. 不能在程序的其他部分重用

考虑这些原因来改进你的代码

相关内容

最新更新