如何循环回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 
+1

解释你想要做什么,而不是*你想怎么做。到目前为止,你的问题不包含你的目标。 – Tomalak

+0

基本上我想捕捉那些以'create'开始并以'Primary key'结尾的行之间的行。我的文件中有多个这样的行。所以我希望我的程序执行一旦遇到以'主键'开头的行就返回到for循环。 – Bhaskar

+0

使用布尔标志打开和关闭关键位置的线条输出,并让循环正常运行。 – Tomalak

每在注释中说明,你看打印符合特定条件的线路范围,很像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时立即再次停止。您可以对三个测试重新排序以实现其他组合,如打印包含这些关键字的行。

+0

非常感谢。这有帮助! – Bhaskar

+0

@Bhaskar不要忘记在解决你的问题时打勾答案。 – Tomalak