我正在使用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: '))
(只要已经分配给0以外的其他内容)
但是,我想使用一个函数,因为其他时候它可以帮助很多。
感谢您的帮助。
答案 0 :(得分:7)
通常,这是通过返回一些值来完成的,该值允许您决定是否要停止while循环(即某些条件是真还是假):
def stopIfZero(a):
if int(a) == 0:
return True
else:
print('Continue')
return False
while True:
if stopIfZero(input('Number: ')):
break
答案 1 :(得分:4)
一个函数不能代表其调用者break
。 break
必须在语法中处于循环内。
答案 2 :(得分:0)
答案 3 :(得分:0)
break
关键字仅用于循环示例,必须位于循环范围内。
更新您的功能只返回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
,考虑这些原因来改进您的代码。