2016-04-14 11 views
-3

forループを使ってコードを書いた。今度は、ループを1回実行した後にforループを停止したいと考えています。ここにはforループがあります:forループを停止する、Python

for table in tables: #reason for it to do it 12x 

    for tr in table.find_all("tr"): 
     firstTd = tr.find("td") 
     if firstTd and firstTd.has_attr("class") and "indent" in firstTd['class']: 
      values = {} 
      tds = tr.find_all("td") 
      maxVal = tds[1].find("span", class_="wx-value") 
      avgVal = tds[2].find("span", class_="wx-value") 
      minVal = tds[3].find("span", class_="wx-value") 
      if maxVal: 
       values['max'] = maxVal.text 
      if avgVal: 
       values['avg'] = avgVal.text 
      if minVal: 
       values['min'] = minVal.text 
      if len(tds) > 4: 
       sumVal = tds[4].find("span", class_="wx-value") 
       if sumVal: 
        values['sum'] = sumVal.text 
      scrapedData = {} 
      scrapedData[firstTd.text] = values 
      weatherdata.append(scrapedData) 

with open ("january_2016.json", 'w') as outFile: 
    json.dump(weatherdata, outFile, indent=2) 

どうすればよいですか?

+5

を通過してください? –

答えて

5

breakの有無:

for x in range(5): 
    print x 
    break 

これは0を印刷し、実行を停止します。

2

あなたは、breakコマンドを使用する必要があります

for tr in table.find_all("tr"): 
    if any_condition_for_exit: 
     break; 

をそして、あなたは、まず公式documentationを読めば、大丈夫だと思います。

これは本当に便利で、さらに多くの質問に答えることができます。

3

インデントを変更することでこれを実現できます。

ケース1:ケース1で

for item in list: 
    print(item) 
    break 

、それはすぐにプリント最初の項目として実行を停止します。

ケース2:ケース2で

for item in list: 
    print(item) 
return 

、それはすべてのアイテムを印刷した後、自然に終了します。ここでブレークは必要ありません。ブレークは実行力を完全に停止させるためです。

あなたはより多くを探検したい場合はループがあり、なぜあなたは、それがすべてで繰り返したくない場合は、このlink

関連する問題