2016-09-12 5 views
-2

В настоящее время у меня есть лист Excel, проверяющий другой лист excel для определенных номеров. Как только он найдет подходящую ячейку, я хочу, чтобы она вернулась к самому первому циклу. если он не находит соответствующую ячейку, но находит первые 6 цифр, я хочу, чтобы она пометила ее как отмеченную, а затем снова вернется к первому циклу.Разрыв одного цикла и продолжение другого кода

Как это делается?

Ниже приведен мой код. Я прокомментировал, где я хотел, чтобы он вернулся к первому циклу for, который я сделал.

for row in range(sheet.nrows): 
    cell = str(sheet.cell_value(row, 0)) 
    if fd.match(cell): 
     for rows in range(sheet.nrows): 
      windcell = str(windc_sheet.cell_value(rows, 0)) 
      if fd.match(windcell): 
       if cell == windcell: 
        outputsheet.write(row, 1, ' ') 
        #GO BACK TO FIRST FOR LOOP 

       else: 
        sixdig = cell[0:6] 
        sixdigwind = windcell[0:6] 
        if sixdig == sixdigwind: 
         outputsheet.write(row, 1, 'Check') 
         #GO BACK TO FIRST FOR LOOP 

    else: 
     sixdig = cell[0:6] 
     for rows in range(sheet.nrows): 
      windcell = str(windc_sheet.cell_value(rows,0)) 
      sixdigwind = windcell[0:6] 
      if sixdig == sixdigwind: 
       outputsheet.write(row, 1, 'Check') 
+3

Используйте 'break' заявление. –

+0

use breaker оператора – Alex

+0

Куда вы хотите продолжить выполнение? «Переместить» или «вернуться» в «первый за» немного неясно. – martineau

ответ

1

Просто используйте инструкцию break. Это вырывает вас из цикла for или цикла while.

Из документов Python:

перерыв может осуществляться только синтаксический вложенным в течение или во время цикла, но не вложенных в функции или класса определения в пределах этого цикла. . Он завершает ближайший замкнутый контур , пропуская необязательное предложение else, если в нем есть один. Если цикл for завершен прерыванием, цель управления контуром сохраняет свой текущий значение . Когда break передает управление из инструкции try с предложением finally, , что предложение finally выполняется до того, как он действительно покинет цикл.

(выделено мной)

for row in range(sheet.nrows): 
    cell = str(sheet.cell_value(row, 0)) 
    if fd.match(cell): 
     for rows in range(sheet.nrows): 
      windcell = str(windc_sheet.cell_value(rows, 0)) 
      if fd.match(windcell): 
       if cell == windcell: 
        outputsheet.write(row, 1, ' ') 
        break # TERMINATE ENCLOSING FOR LOOP 

       else: 
        sixdig = cell[0:6] 
        sixdigwind = windcell[0:6] 
        if sixdig == sixdigwind: 
         outputsheet.write(row, 1, 'Check') 
         break # TERMINATE ENCLOSING FOR LOOP 

    else: 
     sixdig = cell[0:6] 
     for rows in range(sheet.nrows): 
      windcell = str(windc_sheet.cell_value(rows,0)) 
      sixdigwind = windcell[0:6] 
      if sixdig == sixdigwind: 
       outputsheet.write(row, 1, 'Check') 

 Смежные вопросы

  • Нет связанных вопросов^_^