Найти - Пользователи
Полная версия: циклы for
Начало » Python для новичков » циклы for
1 2
ninjacat
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
Можно 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
Например, так:
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
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
всем спасибо, разобрался
bw
> raise Exception
А ещё можно ребут системы делать (с форматированием винта).

..bw
Infernus
bw, а что не так?
Андрей Светлов
А запускайте как минимум RuntimeError. Exception слишком высоко по иерархии. except Exception словит почти все исключения программы, как ваши так и не ожидаемые. Оно вам надо?
Infernus
ок, понял.
bw
Я намекал на то что в данном случае это один из ужаснейших вариантов завершения цикла.
Но коль уж начали вспоминать разные типы исключений, то мне на ум приходит не RuntimeError, а StopIteration почему-то.

..bw
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