如何在 python 中循环回到特定点
How to loop back in python to specific point
我有一个代码:
我希望我的程序在执行第 3 个 if 语句后返回到 for 循环。当我使用 "continue" 时,它返回到第二个 if 语句而不是返回到 for 循环。知道如何做到这一点吗?谢谢
row = 0
for line in fh:
if line.startswith('CREATE'):
startrow = row
if row > startrow:
if line.startswith('PRIMARY KEY'): (then go to the for loop)
print row
row = row + 1
根据评论中的描述,您希望打印符合特定条件的行范围,很像 awk '/^CREATE/,/^PRIMARY KEY/ {print}'
。出于某种原因,您已经从嵌套循环的概念中使用 goto 计划了这一点,而嵌套循环并不存在。我们可以编写嵌套循环,但我们不需要这样做。
printing = False
for line in fh:
if line.startswith('PRIMARY KEY'):
printing = False
if printing:
print row
if line.startswith('CREATE'):
printing = True
这个变种一开始不打印行,遇到CREATE就开始打印行,遇到PRIMARYKEY又立马停止。您可以重新排序这三个测试以实现其他组合,例如打印包含这些关键字的行。
我有一个代码:
我希望我的程序在执行第 3 个 if 语句后返回到 for 循环。当我使用 "continue" 时,它返回到第二个 if 语句而不是返回到 for 循环。知道如何做到这一点吗?谢谢
row = 0
for line in fh:
if line.startswith('CREATE'):
startrow = row
if row > startrow:
if line.startswith('PRIMARY KEY'): (then go to the for loop)
print row
row = row + 1
根据评论中的描述,您希望打印符合特定条件的行范围,很像 awk '/^CREATE/,/^PRIMARY KEY/ {print}'
。出于某种原因,您已经从嵌套循环的概念中使用 goto 计划了这一点,而嵌套循环并不存在。我们可以编写嵌套循环,但我们不需要这样做。
printing = False
for line in fh:
if line.startswith('PRIMARY KEY'):
printing = False
if printing:
print row
if line.startswith('CREATE'):
printing = True
这个变种一开始不打印行,遇到CREATE就开始打印行,遇到PRIMARYKEY又立马停止。您可以重新排序这三个测试以实现其他组合,例如打印包含这些关键字的行。