Найти - Пользователи
Полная версия: Возвращение значения в цикл
Начало » Python для новичков » Возвращение значения в цикл
1
Razor
Представим простую ситуацию:

try:
    for value in list:
        # куча всякого
        # иногда выскакивают ошибки (разные)
except: # обрабатываем ошибки
    # ????? 

Как снова вернуть значение в цикл, чтобы цикл повторно проверил значение. Да, я знаю, что оборачивать подобным образом нельзя, но суть не в этом.

Суть: как вернуть значение в цикл?
@cckyi_boxxx
во-первых какое значение ?

если интересует что-бы цикл начал работать с нужного места а не с начала то следует при помощи pop() снимать уже обработанные значения из списка , а затем в случае ошибки перезапускать цикл

сделать это можно обернув вашу конструкцию в цикл while который будет следить за тем что в списке еще есть необработанные элементы
Razor
Блин, и правда, выскочило из головы про использование списка, как стека.

Да не, while тут не нужен:

list_values = list(range(100))
try:
    for value[0] in list_values:
        # куча всякого
        # иногда выскакивают ошибки (разные)
        del [0]
except: # обрабатываем ошибки
    continue

Спасибо за помощь, что-то я сглупил немного.
Razor
Боже, что я написал. Нужно чаще спать, извините. Вы правы, тут нужен цикл while. Спасибо)

list_values = list(range(100))
try:
    while bool(list_values):
        # используем list_values[0]
        # куча всякого
        # иногда выскакивают ошибки (разные)
        del list_values[0]
except: # обрабатываем ошибки
    continue
FishHook
import random
l = [1, 2, 3, 4, 5, 6, 7, 8, 9]
lst = iter(l)
val = lst.next()
while 1:
    try:
        print val
        assert random.randint(0, 1)
    except Exception:
        continue
    try:
        val = lst.next()
    except StopIteration:
        break
o7412369815963
for t in tasks:
  try:
    while True:
      # do work
      break  # next task
  except:
    continue

Или вот, (tasks - “Queue” или т.п.)
task = tasks.pop()
while task:
  try:
      # do work
      task = tasks.pop()
  except:
    # ...
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB