Python 打破内部功能
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
函数不能 break
代表其调用者。 break
在句法上必须在循环内。
您想使用 return
,而不是 break
。
break
用于停止循环。
The break statement, like in C, breaks out of the smallest enclosing for or while loop.
return
用于退出函数,return一个值。你也可以returnNone
。
break
关键字只能在您的循环示例中使用,并且必须在循环范围内。
仅将函数更新为 return True
或 False
:
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
、
- 打印一条消息,
- 不能在您程序的其他部分重复使用
考虑这些原因来改进您的代码。
我正在使用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
函数不能 break
代表其调用者。 break
在句法上必须在循环内。
您想使用 return
,而不是 break
。
break
用于停止循环。
The break statement, like in C, breaks out of the smallest enclosing for or while loop.
return
用于退出函数,return一个值。你也可以returnNone
。
break
关键字只能在您的循环示例中使用,并且必须在循环范围内。
仅将函数更新为 return True
或 False
:
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
、 - 打印一条消息,
- 不能在您程序的其他部分重复使用
考虑这些原因来改进您的代码。