#21. Операторы циклов break, continue и else | Python для начинающих

  Рет қаралды 63,553

selfedu

selfedu

Күн бұрын

Пікірлер: 67
@YouBeenTrolled993
@YouBeenTrolled993 5 ай бұрын
Этот канал заслуживает на много больше подписчиков и намного больше лайков!
@paveldudnikov5302
@paveldudnikov5302 3 жыл бұрын
Преподаватель от Бога, классно объясняет!!!
@DevS940
@DevS940 Жыл бұрын
Просто, доступно , без лишней информации. Сергей, спасибо огромное за Вашу работу и доброту, которую несете в этот Мир, прохожу Ваш курс, Вы отличный Учитель,здоровья Вам и Вашей семье 🙏🤝
@thebaingames5636
@thebaingames5636 Жыл бұрын
Спасибо автору за объяснение операторов break, continue. Я продолжаю становиться лучше, чтобы стать счастливым.
@mazur_vg
@mazur_vg 3 жыл бұрын
Спасибо! Не знал, что после while можно прописать else, которая работает только при штатном завершении цикла 😁👍
@sefgeypimenov9261
@sefgeypimenov9261 Жыл бұрын
По моему так понятнее: b = [1, 3, 5, 7, 8, -3] i = 0 while i < len(b): x = b[i] % 2 == 0 if x: break i += 1 print(b[i]) Конечно булево значение можно добавить, по необходимости
@01001G.
@01001G. 2 жыл бұрын
спасибо за такие хорошо объясняемые уроки. очень хороший специалист .
@DmitryTimofeev
@DmitryTimofeev 5 ай бұрын
Большое спасибо! Решил задачу немного иначе. # Вариант с циклом while: d = [1, 5, 3, 6, 0, -4] x = 0 while x < len(d): if d[x] % 2 == 0: print(f"Первое чётное значение в списке d - {d[x]}") break else: print(d[x], end = " ") x += 1 print(" ") # Вариант с циклом for: for x in d: if x % 2 == 0: print(f"Первое чётное значение в списке d - {x}") break else: print(x, end = " ") x += 1
@SuperGeroyDDD
@SuperGeroyDDD Жыл бұрын
чел ты просто лучший в кавычках нет
@ИванКруткевич
@ИванКруткевич 3 жыл бұрын
Отличные уроки
@soulgambler961
@soulgambler961 2 жыл бұрын
Спасибо !) Теперь я понял как решить 4 задание , штатное завершение цикла, просто добавить else после цикла while. Крутая штука и не нужно мудрить тогда ) Спасибо :)
@andredru4278
@andredru4278 11 ай бұрын
Спасибо. Полезный урок.
@olegkomlev
@olegkomlev 2 жыл бұрын
10:14 Вот такой вариант, без continue, с обработкой элементов, вложенной в if, гораздо нагляднее и понятнее, по-моему. Видно, что обработка подчинена (охраняется условием) if. В Питоне отступы показывают иерархию (вложенность). И если операторы находятся на том же уровне (с той же вложенностью), то это говорит, что операторы равноправны. Но это не так, поэтому текст программы не "выглядит более читабельным", а как раз наоборот - логика выполнения противоречит внешнему виду (отступам). В каком случае следует использовать continue? Предположим, что в цикле мы не можем сразу решить подходит нам очередной элемент или нет, а можем понять это только в процессе обработки элемента. Причем это сложная, многоэтапная обработка. И вот, в какой-то момент, мы понимаем, что элемент не нужно дальше обрабатывать, а нужно попробовать следующий. И вот тут вызываем continue ("продолжить", хотя по смыслу лучше бы сказать "следующий" или "пропустить"), в результате оставшаяся часть итерации не выполняется, мы переходим к следующей итерации (к проверке условия следующей итерации). Если бы мы не использовали continue, то из-за сложной обработки получилось бы много вложенных if, что снизило бы наглядность (видимо, это Вы и имели в виду). Но continue нагляднее, если сложная, многоэтапная обработка элемента, в процессе которой только и можно понять, обрабатывать этот элемент или брать следующий. А в таком простом примере, как показан, как-раз наоборот - вариант с continue менее нагляден, чем один if.
@Putu_pererenan
@Putu_pererenan 5 ай бұрын
Все верно автор сказал, только вместо continue используется return везде, continue почти не используется во "взрослом" программировании, как и твой вариант if
@ИбрагимГусейнов-ь6г
@ИбрагимГусейнов-ь6г 5 ай бұрын
спасибо вам большое
@stepansteeple
@stepansteeple 3 жыл бұрын
Не очень наглядно подобран пример с while, break и flFind. Можно while завязать на d[i] % 2 == 0 и всё. В остальном - всегда получаю удовольствие от просмотра, спасибо!
@Putu_pererenan
@Putu_pererenan 5 ай бұрын
И просто получаем зависший бесконечный цикл, если в списке не оказалось четного числа. Гений
@jamjam3337
@jamjam3337 Жыл бұрын
👏👍спасибо!
@спутникдели
@спутникдели Жыл бұрын
не понятна логика действий - переменная S хранит сумму нечётных введённых значений = 0 , почему ? Переменная D куда пользователь будет вводить какие-то значения = 1 ? Видимо мною было пропущено какое-то занятие . Был бы признателен за ссылку .
@annoynmousss
@annoynmousss 2 жыл бұрын
Все было нормально дошел до while и уже пошло провалы. Не могу нормально понять как они выполняются хотя и посмотрел их 2-3 раза и искал доп инфы.По поводу видоса вопросов 0. Видос получился классным!
@ToN95
@ToN95 2 жыл бұрын
Ты ставишь такое условие в котором while(цикл) будет в значении True, и пока цикл True цикла будет работать, и все то что ты напишешь под ним будет работать. Как только условие while(цикл) доходит/становится False, цикл перестает работать. Если есть вопросы постараюсь ответить сам учусь
@annoynmousss
@annoynmousss 2 жыл бұрын
@@ToN95 Я уже давно разобрался, но спасибо)
@Fravije
@Fravije Жыл бұрын
Добрый день! Спасибо, всегда очень интересно и доступно. Но честно говоря, не всегда понимаю необходимость использования флагов. Разве нельзя так: while i < len(d): if d[i] % 2 == 0: break Мне кажется что так короче и главное понятнее (тут и в других примерах). Может, я не знаю каких-то скрытых изъянов данного подхода или применение флага как-то более целесообразно? Можете пояснить?
@selfedu_rus
@selfedu_rus Жыл бұрын
да, конечно, можно короче, скрытого ничего такого нет, просто если нужно после цикла знать нашли что то или нет, то тут удобно иметь переменную, которая это покажет, а во всем остальном без разницы!
@Fravije
@Fravije Жыл бұрын
@@selfedu_rus спасибо!
@kuromidori4635
@kuromidori4635 7 ай бұрын
Подскажите почему функция len() выдает разную длину в данном случае >>>string = "moOse" >>>len(set(string.lower())) >>>4 >>>len(string) >>>5
@Putu_pererenan
@Putu_pererenan 5 ай бұрын
Всмысле почему? Потому что ты за каких-то хреном привел строку к множеству, в котором только уникальные элементы
@elenalevasheva3830
@elenalevasheva3830 Жыл бұрын
Спасибо за урок, все вроде бы знала (как бы), но выясняется, что знала именно КАК БЫ. Не во всем было ясное понимание. На каждом уроке в этом убеждаюсь.
@monza555
@monza555 7 ай бұрын
Почему вы задали flFind false изначально?
@Rusia-16
@Rusia-16 Жыл бұрын
По ссылке есть курс с другим набором видеоуроков . Какой вперед проходить этот или тот ?
@selfedu_rus
@selfedu_rus Жыл бұрын
Базовый этот stepik.org/course/100707/ А какой еще, вроде там одна ссылка?
@ИмранБайменов
@ИмранБайменов Жыл бұрын
А как сделать через while чтоб ты ведешь не цифр а слова
@firespb
@firespb Жыл бұрын
А как результат после цикла сохранить в файл?
@ВладимирПолухин-ъ7с
@ВладимирПолухин-ъ7с 2 жыл бұрын
Здравствуйте) Как Вы ставите '#' одновременно на несколько выделенных сток делая из них комментарии? Какой-то комбинацией клавиш?
@selfedu_rus
@selfedu_rus 2 жыл бұрын
Ctrl + /
@ВладимирПолухин-ъ7с
@ВладимирПолухин-ъ7с 2 жыл бұрын
@@selfedu_rus Спасибо)))
@andreychernykh256
@andreychernykh256 3 жыл бұрын
наконец-то я запутался. тема не сложная, но очень много вопросов. почему переменной flFind присваивается значение False? вопросов столько, что и писать лень. придется много гуглить(
@Имяифамилия-з4ю
@Имяифамилия-з4ю 3 жыл бұрын
Токая же фегнь
@ghostlynomad7788
@ghostlynomad7788 3 жыл бұрын
Переменной flFind присваивается значение False чтобы проверять нашелся ли четный элемент в списке или нет. Если нашёлся, то у неё будет знание True и тогда выйдем из цикла досрочно с помощью break. Помогло?
@andreychernykh256
@andreychernykh256 3 жыл бұрын
@@ghostlynomad7788 я всё это понимаю, но применить не могу
@ghostlynomad7788
@ghostlynomad7788 3 жыл бұрын
@@andreychernykh256 не совсем понимаю, в каком смысле применить? Ну, можно просто записать так же как у автора. Попробовать с другими числами (есть ли в списке четное или нет?)
@andreychernykh256
@andreychernykh256 3 жыл бұрын
@@ghostlynomad7788 шаг в сторону и я теряюсь
@ibrahimoglu
@ibrahimoglu 3 жыл бұрын
👍
@Spalexfly
@Spalexfly Жыл бұрын
Непонятно, почему if flFind, а не if flFind = True? (перед break). Спасибо за уроки.
@selfedu_rus
@selfedu_rus Жыл бұрын
Задайте этот вопрос в телеграм-канал по Python. Сообщество вам ответит.
@sdddwd8243
@sdddwd8243 Жыл бұрын
Для начала, давайте разберем значения переменных и список: d = [1, 5, 3, 6, 0, -4] flFind = False, i = 0 d - это список, содержащий числа [1, 5, 3, 6, 0, -4]. flFind - это флаг (логическая переменная), который будет использоваться для обозначения того, было ли найдено четное число в списке. Изначально он установлен в значение False, что означает, что четное число еще не было найдено. i - это переменная, используемая для отслеживания индекса текущего элемента списка при выполнении цикла. Изначально i установлено на 0, что соответствует первому элементу списка. Теперь разберем цикл while: while i < len(d): flFind = d[i] % 2 == 0 if flFind: break i += 1 while i < len(d): - это условие цикла, которое означает "пока значение переменной i меньше длины списка d". flFind = d[i] % 2 == 0 - здесь проверяется, является ли текущий элемент списка d[i] четным числом. Выражение d[i] % 2 вычисляет остаток от деления d[i] на 2, и затем это значение сравнивается с нулем (0). Если остаток равен нулю, то значит, число четное, и flFind устанавливается в True. if flFind: break - если в результате проверки flFind стало равно True (т.е. было найдено четное число), тогда цикл прерывается с помощью ключевого слова break. Теперь посмотрим на итерации цикла с иллюстрацией: Итерация 1: i = 0 flFind = 1 % 2 == 0 # False Итерация 2: i = 1 flFind = 5 % 2 == 0 # False Итерация 3: i = 2 flFind = 3 % 2 == 0 # False Итерация 4: i = 3 flFind = 6 % 2 == 0 # True Таким образом, после четвертой итерации значение flFind стало True, потому что было найдено четное число в списке (6). Цикл прерывается, и программа завершается. Затем на экран выводится результат: print(flFind) Результат: True Обратите внимание, что программа не ищет все четные числа в списке, она просто находит первое четное число и завершает выполнение. Если бы список содержал только нечетные числа, то значение flFind осталось бы равным False.
@ney107-iz6xl
@ney107-iz6xl Жыл бұрын
Спасибо
@АристархРоссолимо
@АристархРоссолимо 11 ай бұрын
​@@sdddwd8243объясните пожалуйста, почему flFind изначально будучи false прерывается оператором break когда становится true. По сути связь улавливается, но мне все равно не понятно почему если он становится положительным булевым значением, отличным от отрицательного, оператор break срабатывает
@thistime6572
@thistime6572 Жыл бұрын
Кто нибудь может подсказать зачем, когда автор этого видео проверял на чётность числа из списка при работе с break писал в этом проверяющем условии d[i] , т.е зачем нужна в квадратных скобках переменная i ?
@RomaDrobot
@RomaDrobot Жыл бұрын
порядковый номер элемента в списке
@thistime6572
@thistime6572 Жыл бұрын
@@RomaDrobot Спасибо... Я уже сам разобрался💻
@paveldudnikov5302
@paveldudnikov5302 3 жыл бұрын
Добрый день Сергей! А если мы в цикле будем использовать оператор continue при переборе например значений от -10 до 10 и при достижении цикла нулевого значения используем continue. Тогда цикл while завершится штатно? Меня интересует если после цикла будем использовать необязательный блок else, он будет выполнен? Вы приводили пример с break, но else не был выполнен в конце ролика.
@selfedu_rus
@selfedu_rus 3 жыл бұрын
Оператор continue лишь пропускает одну итерацию, он не прерывает сам цикл, поэтому на оператор else он не оказывает никакого влияния. Да, при continue блок else выполняется.
@ОлегАлексеев-н3м
@ОлегАлексеев-н3м 9 ай бұрын
Не понятно но очень интересно.
@ney107-iz6xl
@ney107-iz6xl Жыл бұрын
Что значит d[i] индекса i нету в списке d?
@mrup7192
@mrup7192 3 жыл бұрын
По сути else работает так же как в if-ах, в данном случае делать одно пока условие истинно else делать другое.
@Putu_pererenan
@Putu_pererenan 5 ай бұрын
Не совсем, в ифах до else дело может не дойти, а тут выполняется всегда, то есть по сути не имеет смысла, этот код можно написать просто после цикла
@hawkkey331
@hawkkey331 3 жыл бұрын
у вас курса на степике случайно нет?
@selfedu_rus
@selfedu_rus 3 жыл бұрын
ссылка под видео
@hawkkey331
@hawkkey331 3 жыл бұрын
@@selfedu_rus хм, сначала подумал, что я слепой, оказывается в опере gx она не отображается, а в гугле есть, спасибо
@goqorgrigoryan4520
@goqorgrigoryan4520 2 ай бұрын
operator kantinya
@Putu_pererenan
@Putu_pererenan 5 ай бұрын
Все знают, что правильно говорить - континуе 😁
@RomaDrobot
@RomaDrobot Жыл бұрын
континуэ != [kənˈtɪnjuː]
人是不能做到吗?#火影忍者 #家人  #佐助
00:20
火影忍者一家
Рет қаралды 20 МЛН
Несовместные и независимые события
2:35
Онлайн-школа "ОлимпИнтеллект"
Рет қаралды 152