ninjacat
Июнь 16, 2011 00:42:31
for x in xrange(1, 100):
for y in xrange(1, 10):
if qwe:
pass
else:
break
for z in xrange(1, 10):
pass
как сделать так, чтобы после break не выполнялся for z ?
pyuser
Июнь 16, 2011 01:54:15
Можно else добавить:
for x in xrange(1, 100):
for y in xrange(1, 10):
if qwe:
pass
else:
break
else:
for z in xrange(1, 10):
pass
Infernus
Июнь 16, 2011 01:57:15
Например, так:
for x in xrange(1, 100):
try:
for y in xrange(1, 10):
if qwe:
pass
else:
raise Exception
for z in xrange(1, 10):
pass
except Exception:
pass
Soteric
Июнь 16, 2011 09:53:25
for x in xrange(1, 100):
doZ = True
for y in xrange(1, 10):
if qwe:
pass
else:
doZ = False
break
if doZ:
for z in xrange(1, 10):
pass
ninjacat
Июнь 16, 2011 11:50:53
всем спасибо, разобрался
bw
Июнь 16, 2011 11:56:44
> raise Exception
А ещё можно ребут системы делать (с форматированием винта).
..bw
Infernus
Июнь 16, 2011 14:23:07
bw, а что не так?
Андрей Светлов
Июнь 16, 2011 16:57:33
А запускайте как минимум RuntimeError. Exception слишком высоко по иерархии. except Exception словит почти все исключения программы, как ваши так и не ожидаемые. Оно вам надо?
Infernus
Июнь 16, 2011 18:19:05
ок, понял.
bw
Июнь 16, 2011 19:52:31
Я намекал на то что в данном случае это один из ужаснейших вариантов завершения цикла.
Но коль уж начали вспоминать разные типы исключений, то мне на ум приходит не RuntimeError, а StopIteration почему-то.
..bw