Почему break предшествует "основному" циклу (python)
не могли бы вы помочь понять логику в Python.
Есть пример:
answers = ["A", "C", "W", "E"]
for x in answers:
if x == "W":
print("Wrong")
break
print(x)
Здесь цикл проходится по всему списку, и если натыкается на ответ "W", то останавливается. На выходе получаем:
A
C
Wrong
Но я не понимаю, почему сначала идет условие if, а только потом - цикл "проходки" по значениям. Руководствуясь бытовой логикой ведь сначала цикл проходится по значениям, а уже потом должна следовать операция проверки на соответствие значению "W" ? Но если я меняю местами эти две части кода:
answers = ["A", "C", "W", "E"]
for x in answers:
print(x)
if x == "W":
print("Wrong")
break
То на выходе имеею:
A
C
W
Wrong
Не могли бы вы мне помочь разобраться в этой логике?
Ответы (2 шт):
Сначала идет условие if (если W, то завершаем цикл), а потом вывод на печать. А цикл находится вокруг всего этого. Каждое значение проверяется отдельно.
Вы же сначала ставите вывод на печать, а потом проверку на значение.
Разберем цикл forв первом примере на шаги:
под проверку попадает "A". Это не "W". Он проходит
if. Потом он печатает "A"то же самое и с "C".
Наступает черед "W". Он проходит
if. Условие верное - это "W". А в цикле написано:break.breakмгновенно завершаетwhile, не проходя последующие действия. А печатать "W" - в последующих действиях.
А вот во втором примере на так. Там печать - не последующее действие. Печать идет перед break. И он сначала печатает "W", а потом уже выходит с помощью break.