Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 16, 2011 00:42:31

ninjacat
От:
Зарегистрирован: 2011-06-16
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

циклы for

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 ?



Офлайн

#2 Июнь 16, 2011 01:54:15

pyuser
От:
Зарегистрирован: 2007-05-13
Сообщения: 658
Репутация: +  36  -
Профиль   Отправить e-mail  

циклы for

Можно 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



Офлайн

#3 Июнь 16, 2011 01:57:15

Infernus
От:
Зарегистрирован: 2011-06-04
Сообщения: 27
Репутация: +  0  -
Профиль   Отправить e-mail  

циклы for

Например, так:

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



Офлайн

#4 Июнь 16, 2011 09:53:25

Soteric
От:
Зарегистрирован: 2010-09-19
Сообщения: 352
Репутация: +  20  -
Профиль   Отправить e-mail  

циклы for

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



Офлайн

#5 Июнь 16, 2011 11:50:53

ninjacat
От:
Зарегистрирован: 2011-06-16
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

циклы for

всем спасибо, разобрался



Офлайн

#6 Июнь 16, 2011 11:56:44

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

циклы for

> raise Exception
А ещё можно ребут системы делать (с форматированием винта).

..bw



Офлайн

#7 Июнь 16, 2011 14:23:07

Infernus
От:
Зарегистрирован: 2011-06-04
Сообщения: 27
Репутация: +  0  -
Профиль   Отправить e-mail  

циклы for

bw, а что не так?



Офлайн

#8 Июнь 16, 2011 16:57:33

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

циклы for

А запускайте как минимум RuntimeError. Exception слишком высоко по иерархии. except Exception словит почти все исключения программы, как ваши так и не ожидаемые. Оно вам надо?



Офлайн

#9 Июнь 16, 2011 18:19:05

Infernus
От:
Зарегистрирован: 2011-06-04
Сообщения: 27
Репутация: +  0  -
Профиль   Отправить e-mail  

циклы for

ок, понял.



Офлайн

#10 Июнь 16, 2011 19:52:31

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

циклы for

Я намекал на то что в данном случае это один из ужаснейших вариантов завершения цикла.
Но коль уж начали вспоминать разные типы исключений, то мне на ум приходит не RuntimeError, а StopIteration почему-то.

..bw



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version