Этот канал заслуживает на много больше подписчиков и намного больше лайков!
@paveldudnikov53023 жыл бұрын
Преподаватель от Бога, классно объясняет!!!
@mazur_vg3 жыл бұрын
Спасибо! Не знал, что после while можно прописать else, которая работает только при штатном завершении цикла 😁👍
@DevS940 Жыл бұрын
Просто, доступно , без лишней информации. Сергей, спасибо огромное за Вашу работу и доброту, которую несете в этот Мир, прохожу Ваш курс, Вы отличный Учитель,здоровья Вам и Вашей семье 🙏🤝
@thebaingames5636 Жыл бұрын
Спасибо автору за объяснение операторов break, continue. Я продолжаю становиться лучше, чтобы стать счастливым.
@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]) Конечно булево значение можно добавить, по необходимости
@SuperGeroyDDD Жыл бұрын
чел ты просто лучший в кавычках нет
@01001G.2 жыл бұрын
спасибо за такие хорошо объясняемые уроки. очень хороший специалист .
@ИванКруткевич3 жыл бұрын
Отличные уроки
@DmitryTimofeev4 ай бұрын
Большое спасибо! Решил задачу немного иначе. # Вариант с циклом 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
@andredru42789 ай бұрын
Спасибо. Полезный урок.
@soulgambler9612 жыл бұрын
Спасибо !) Теперь я понял как решить 4 задание , штатное завершение цикла, просто добавить else после цикла while. Крутая штука и не нужно мудрить тогда ) Спасибо :)
@stepansteeple3 жыл бұрын
Не очень наглядно подобран пример с while, break и flFind. Можно while завязать на d[i] % 2 == 0 и всё. В остальном - всегда получаю удовольствие от просмотра, спасибо!
@Putu_pererenan4 ай бұрын
И просто получаем зависший бесконечный цикл, если в списке не оказалось четного числа. Гений
@ИбрагимГусейнов-ь6г4 ай бұрын
спасибо вам большое
@спутникдели Жыл бұрын
не понятна логика действий - переменная S хранит сумму нечётных введённых значений = 0 , почему ? Переменная D куда пользователь будет вводить какие-то значения = 1 ? Видимо мною было пропущено какое-то занятие . Был бы признателен за ссылку .
@annoynmousss2 жыл бұрын
Все было нормально дошел до while и уже пошло провалы. Не могу нормально понять как они выполняются хотя и посмотрел их 2-3 раза и искал доп инфы.По поводу видоса вопросов 0. Видос получился классным!
@ToN95 Жыл бұрын
Ты ставишь такое условие в котором while(цикл) будет в значении True, и пока цикл True цикла будет работать, и все то что ты напишешь под ним будет работать. Как только условие while(цикл) доходит/становится False, цикл перестает работать. Если есть вопросы постараюсь ответить сам учусь
@annoynmousss Жыл бұрын
@@ToN95 Я уже давно разобрался, но спасибо)
@olegkomlev2 жыл бұрын
10:14 Вот такой вариант, без continue, с обработкой элементов, вложенной в if, гораздо нагляднее и понятнее, по-моему. Видно, что обработка подчинена (охраняется условием) if. В Питоне отступы показывают иерархию (вложенность). И если операторы находятся на том же уровне (с той же вложенностью), то это говорит, что операторы равноправны. Но это не так, поэтому текст программы не "выглядит более читабельным", а как раз наоборот - логика выполнения противоречит внешнему виду (отступам). В каком случае следует использовать continue? Предположим, что в цикле мы не можем сразу решить подходит нам очередной элемент или нет, а можем понять это только в процессе обработки элемента. Причем это сложная, многоэтапная обработка. И вот, в какой-то момент, мы понимаем, что элемент не нужно дальше обрабатывать, а нужно попробовать следующий. И вот тут вызываем continue ("продолжить", хотя по смыслу лучше бы сказать "следующий" или "пропустить"), в результате оставшаяся часть итерации не выполняется, мы переходим к следующей итерации (к проверке условия следующей итерации). Если бы мы не использовали continue, то из-за сложной обработки получилось бы много вложенных if, что снизило бы наглядность (видимо, это Вы и имели в виду). Но continue нагляднее, если сложная, многоэтапная обработка элемента, в процессе которой только и можно понять, обрабатывать этот элемент или брать следующий. А в таком простом примере, как показан, как-раз наоборот - вариант с continue менее нагляден, чем один if.
@Putu_pererenan4 ай бұрын
Все верно автор сказал, только вместо continue используется return везде, continue почти не используется во "взрослом" программировании, как и твой вариант if
@jamjam3337 Жыл бұрын
👏👍спасибо!
@elenalevasheva3830 Жыл бұрын
Спасибо за урок, все вроде бы знала (как бы), но выясняется, что знала именно КАК БЫ. Не во всем было ясное понимание. На каждом уроке в этом убеждаюсь.
@kuromidori46356 ай бұрын
Подскажите почему функция len() выдает разную длину в данном случае >>>string = "moOse" >>>len(set(string.lower())) >>>4 >>>len(string) >>>5
@Putu_pererenan4 ай бұрын
Всмысле почему? Потому что ты за каких-то хреном привел строку к множеству, в котором только уникальные элементы
@Rusia-16 Жыл бұрын
По ссылке есть курс с другим набором видеоуроков . Какой вперед проходить этот или тот ?
@selfedu_rus Жыл бұрын
Базовый этот stepik.org/course/100707/ А какой еще, вроде там одна ссылка?
@Fravije Жыл бұрын
Добрый день! Спасибо, всегда очень интересно и доступно. Но честно говоря, не всегда понимаю необходимость использования флагов. Разве нельзя так: while i < len(d): if d[i] % 2 == 0: break Мне кажется что так короче и главное понятнее (тут и в других примерах). Может, я не знаю каких-то скрытых изъянов данного подхода или применение флага как-то более целесообразно? Можете пояснить?
@selfedu_rus Жыл бұрын
да, конечно, можно короче, скрытого ничего такого нет, просто если нужно после цикла знать нашли что то или нет, то тут удобно иметь переменную, которая это покажет, а во всем остальном без разницы!
@Fravije Жыл бұрын
@@selfedu_rus спасибо!
@monza5556 ай бұрын
Почему вы задали flFind false изначально?
@ibrahimoglu3 жыл бұрын
👍
@andreychernykh2563 жыл бұрын
наконец-то я запутался. тема не сложная, но очень много вопросов. почему переменной flFind присваивается значение False? вопросов столько, что и писать лень. придется много гуглить(
@Имяифамилия-з4ю3 жыл бұрын
Токая же фегнь
@ghostlynomad77882 жыл бұрын
Переменной flFind присваивается значение False чтобы проверять нашелся ли четный элемент в списке или нет. Если нашёлся, то у неё будет знание True и тогда выйдем из цикла досрочно с помощью break. Помогло?
@andreychernykh2562 жыл бұрын
@@ghostlynomad7788 я всё это понимаю, но применить не могу
@ghostlynomad77882 жыл бұрын
@@andreychernykh256 не совсем понимаю, в каком смысле применить? Ну, можно просто записать так же как у автора. Попробовать с другими числами (есть ли в списке четное или нет?)
@andreychernykh2562 жыл бұрын
@@ghostlynomad7788 шаг в сторону и я теряюсь
@ИмранБайменов Жыл бұрын
А как сделать через while чтоб ты ведешь не цифр а слова
@ОлегАлексеев-н3м8 ай бұрын
Не понятно но очень интересно.
@firespb Жыл бұрын
А как результат после цикла сохранить в файл?
@Spalexfly Жыл бұрын
Непонятно, почему if flFind, а не if flFind = True? (перед break). Спасибо за уроки.
@selfedu_rus Жыл бұрын
Задайте этот вопрос в телеграм-канал по Python. Сообщество вам ответит.
@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 Жыл бұрын
Спасибо
@АристархРоссолимо10 ай бұрын
@@sdddwd8243объясните пожалуйста, почему flFind изначально будучи false прерывается оператором break когда становится true. По сути связь улавливается, но мне все равно не понятно почему если он становится положительным булевым значением, отличным от отрицательного, оператор break срабатывает
@ВладимирПолухин-ъ7с2 жыл бұрын
Здравствуйте) Как Вы ставите '#' одновременно на несколько выделенных сток делая из них комментарии? Какой-то комбинацией клавиш?
@selfedu_rus2 жыл бұрын
Ctrl + /
@ВладимирПолухин-ъ7с2 жыл бұрын
@@selfedu_rus Спасибо)))
@thistime6572 Жыл бұрын
Кто нибудь может подсказать зачем, когда автор этого видео проверял на чётность числа из списка при работе с break писал в этом проверяющем условии d[i] , т.е зачем нужна в квадратных скобках переменная i ?
@RomaDrobot Жыл бұрын
порядковый номер элемента в списке
@thistime6572 Жыл бұрын
@@RomaDrobot Спасибо... Я уже сам разобрался💻
@ney107-iz6xl Жыл бұрын
Что значит d[i] индекса i нету в списке d?
@mrup71923 жыл бұрын
По сути else работает так же как в if-ах, в данном случае делать одно пока условие истинно else делать другое.
@Putu_pererenan4 ай бұрын
Не совсем, в ифах до else дело может не дойти, а тут выполняется всегда, то есть по сути не имеет смысла, этот код можно написать просто после цикла
@paveldudnikov53023 жыл бұрын
Добрый день Сергей! А если мы в цикле будем использовать оператор continue при переборе например значений от -10 до 10 и при достижении цикла нулевого значения используем continue. Тогда цикл while завершится штатно? Меня интересует если после цикла будем использовать необязательный блок else, он будет выполнен? Вы приводили пример с break, но else не был выполнен в конце ролика.
@selfedu_rus3 жыл бұрын
Оператор continue лишь пропускает одну итерацию, он не прерывает сам цикл, поэтому на оператор else он не оказывает никакого влияния. Да, при continue блок else выполняется.
@hawkkey3313 жыл бұрын
у вас курса на степике случайно нет?
@selfedu_rus3 жыл бұрын
ссылка под видео
@hawkkey3313 жыл бұрын
@@selfedu_rus хм, сначала подумал, что я слепой, оказывается в опере gx она не отображается, а в гугле есть, спасибо