如何在不使用继续或休息的情况下开始下一个i?
def function_in_main():
if #something happens:
#start new next iteration for the loop in the main function
def main():
n = 1
for i in range(len(alist)):
print ('step ', n)
function_in_main()
n += 1
main()
输出应该看起来像:
第1步
#if或直到发生事情
第2步
等
答案 0 :(得分:1)
当if语句为true时,只需返回function_in_main即可。当它返回时,循环将继续进行下一次迭代,然后重新调用function_in_main。
答案 1 :(得分:0)
以下是一个例子:
def function_in_main(x):
return x=='Whopee' # will return True if equal else False
def main():
alist=['1','ready','Whopee']
for i,item in enumerate(alist, 1):
print ('step {}, item: "{}" and {}'.format(i,item,function_in_main(item)))
main()
打印:
step 1, item: "1" and False
step 2, item: "ready" and False
step 3, item: "Whopee" and True
请注意使用enumerate而不是手动保留计数器。
答案 2 :(得分:0)
也许尝试提出异常:
def function_in_main():
if #something happens:
raise Exception
def main():
n = 1
for i in range(len(alist)):
print ('step ', n)
try:
x()
except Exception:
continue
n += 1
main()
您可以指定或制作任何类型的例外。
答案 3 :(得分:0)
当然你没有想到一个while循环或什么?看到你得到的东西有点难......
def your_function():
#…do some work, do something to something else
if something_is_true:
return True
else:
return False
def main():
condition = True
for i in range(len(your_list)):
while condition:
print "Step: %d" % i
your_function()
仅当your_function
返回False时,main
中的循环才会继续,否则它将保持在while
循环内。