如何循环回python到特定点
问题描述:
我有一个代码:如何循环回python到特定点
我希望我的程序在第三条if语句执行后返回for循环。当我使用“继续”时,它回到第二个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后开始打印行,并在遇到PRIMARY KEY时立即再次停止。您可以对三个测试重新排序以实现其他组合,如打印包含这些关键字的行。
解释你想要做什么,而不是*你想怎么做。到目前为止,你的问题不包含你的目标。 – Tomalak
基本上我想捕捉那些以'create'开始并以'Primary key'结尾的行之间的行。我的文件中有多个这样的行。所以我希望我的程序执行一旦遇到以'主键'开头的行就返回到for循环。 – Bhaskar
使用布尔标志打开和关闭关键位置的线条输出,并让循环正常运行。 – Tomalak