2017-08-16 54 views
0

我有一個代碼:如何循環回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

回答

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時立即再次停止。您可以對三個測試重新排序以實現其他組合,如打印包含這些關鍵字的行。

+0

非常感謝。這有幫助! – Bhaskar

+0

@Bhaskar不要忘記在解決你的問題時打勾答案。 – Tomalak