2016-04-14 3 views
-3

Ich schrieb einige Code mit einer for-Schleife. Jetzt möchte ich die for-Schleife stoppen, nachdem sie die Schleife einmal ausgeführt hat. Hier ist die for-Schleife:stoppe eine for-Schleife, 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) 

Wie mache ich das?

+5

Wenn Sie es nicht wollen, überhaupt zu wiederholen, warum gibt es eine Schleife? –

Antwort

5

Haben Sie einen break:

for x in range(5): 
    print x 
    break 

Dies druckt 0 und stoppt die Ausführung.

2

sollten Sie den Break-Befehl verwenden:

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

Und wäre schön, wenn Sie zunächst die offizielle documentation lesen.

Es ist wirklich nützlich und kann mehr Ihrer Fragen beantworten.

3

Sie können dies erreichen, indem Sie die Einrückung ändern.

Fall 1:

for item in list: 
    print(item) 
    break 

im Fall 1, wird die Ausführung, sobald Druck erstes Element zu stoppen.

Fall 2:

for item in list: 
    print(item) 
return 

im Fall 2, wird es natürlich nach allen Artikeln beenden drucken. Hier wird Break nicht benötigt, da break die Execution force vollständig stoppt.

, wenn Sie mehr erkunden möchten, gehen Sie bitte über diesen link

Verwandte Themen