Уроки Python casts #10 - Что такое yield

  Рет қаралды 70,931

Oleg Molchanov

Oleg Molchanov

Күн бұрын

Пікірлер
@toyetak
@toyetak 6 жыл бұрын
Редкий случай , чтобы захотелось оставить комментарий к видео на KZbin. Уважаемый автор канала, спасибо вам огромное, за то, что вы находите время и имеете желание заниматься такой просветительской работой. Понятные примеры доступным языком, решение реальных задач, минимум воды в повествовании. Рад, что нашел этот канал на просторах сети. Так совпало, что большинство уроков что выходят в последнее время как раз на самые актуальные для меня темы. Я очень надеюсь, что вы, Олег, найдете возможность и дальше радовать свою аудиторию столь полезным контентом. Будь то короткие заметки о полезных вещах или целые курсы на большие темы. Ещё раз СПАСИБО!
@johnsmith-yk5vz
@johnsmith-yk5vz 6 жыл бұрын
и от меня тоже : Спасибо, просто Спасибо... за весь труд)
@zaemiel
@zaemiel 6 жыл бұрын
Спасибо. Рад, что вам понравилось
@BSroad
@BSroad 6 жыл бұрын
присоединяюсь и подписываюсь под каждым словом! Спасибо!
@visp6883
@visp6883 3 жыл бұрын
ну как, стал прогером?
@toyetak
@toyetak 3 жыл бұрын
@@visp6883 а кто вам сказал что это была цель? Большинство видео которые я смотрел на этом канале нужны мне были для конкретной цели. Эти цели были достигнуты во многом благодаря труду автора канала. Профессия у меня совершенно другая, но помощь была неоценима. За что ему ещё раз благодарность. А ваш сарказм совершенно неуместен.
@nyrouxhide91
@nyrouxhide91 2 жыл бұрын
Автор хорош, простым языком за 10 минут объяснил то что не мог понять месяц.
@databox4279
@databox4279 Жыл бұрын
Единственное видео где на нормальных примерах объясняется то, когда надо применять генераторы. Низкий Вам поклон, Олег, за ваши труды.
@megaShvil
@megaShvil Жыл бұрын
Самое лучшее объяснения генераторов. Спасибо огромное
@alwayssmile3125
@alwayssmile3125 6 жыл бұрын
Мужик ты просто бог объяснений!
@zaemiel
@zaemiel 6 жыл бұрын
Спасибо
@stanislavkalashnikov7170
@stanislavkalashnikov7170 2 жыл бұрын
Спасибо за понятное и лаконичное объяснение. Ваш труд делает жизни множества людей проще. Виртуально жму Вам руку.
@ВладимирПлужников-п4щ
@ВладимирПлужников-п4щ 2 жыл бұрын
День назад смотрел видео другого автора и практически ничего не понял. Здесь же въехал с первого раза. Признателен Олегу. Наглядно и доходчиво.
@dmitrii_kotoff
@dmitrii_kotoff Жыл бұрын
Спасибо, особенно понравился стил изложения без дергания и скачки, как на некоторых популярных каналах. Приятно слушать, все понятно.
@PSS4443
@PSS4443 5 жыл бұрын
Олежка молодец объясняешь как настоящий учитель а не препод. Когда на собеседовании меня спросили как изучал python, ответил по твоим урокам они там слюной изошлись все. Больше бы таких как ты мир бы стал лучше. Благодарю тебя ;) разживусь денежкой обязательно проданатчу тебя .....
@youovercome
@youovercome 2 жыл бұрын
Как работа?
@mrpjetrov378
@mrpjetrov378 Жыл бұрын
За объяснение где это предпочтительней - прям респект респект.
@semasema9004
@semasema9004 Жыл бұрын
Отличное объяснение. Простое, понятное и наглядное. Спасибо!
@vladimirkulakov8667
@vladimirkulakov8667 3 жыл бұрын
а вот я и до функций-генераторов дотянулся! Спасибо за отличную подачу материала!
@Cappietroll
@Cappietroll 6 жыл бұрын
огромнейшее спасибо за материал и подачу!! Понятно, конкретно, ясно и правильно. Низкий поклон, от всей души!
@zaemiel
@zaemiel 6 жыл бұрын
Спасибо
@siberiasoundsystem9134
@siberiasoundsystem9134 2 жыл бұрын
Очень понятные объяснения!
@gorkya
@gorkya 2 жыл бұрын
спасибо большое за видео, всё очень понятно!
@Dmitrii74
@Dmitrii74 3 жыл бұрын
Спасибо, особенно за то, что объясняете где это может понадобиться.
@andrewkrivoshein123
@andrewkrivoshein123 2 жыл бұрын
Спасибо, очень нужный пример использования вы привели
@act0r399
@act0r399 4 жыл бұрын
Реально, никто мне не объяснял так подробно + примеры, которые дают ясность когда, что и как. Благодарю)
@golden_horde
@golden_horde 3 жыл бұрын
Года полтора назад смотрел ничего не понял, а щас смотрю всё очень доступно объясняет
@volodymyr9400
@volodymyr9400 5 жыл бұрын
Нереально крутой канал. Все четко и по делу, нет воды и прочей туфты. Спс за качественный контент!!!
@AlexeyZubkov
@AlexeyZubkov Жыл бұрын
Спасибо. Я этот yield часто вижу в функциях которые дробят списки на n-блоки типа def chunks(lst, n): for i in range(0, len(lst), n): yield lst[i:i + n]
@osvab000
@osvab000 3 жыл бұрын
Олег, как обычно: лаконично и доходчиво. Не понимаю дюжину - поставивших дизлайки.
@ДанилаДанила-ж8р
@ДанилаДанила-ж8р 4 жыл бұрын
Отлично объясняете Олег. Спасибо.
@vladimirkulakov6126
@vladimirkulakov6126 3 жыл бұрын
Спасибо! Дошёл таки до таких ньюансов. Отличное видео!
@talshynadilhan9453
@talshynadilhan9453 Жыл бұрын
Огромное спасибо!
@Mastadanil
@Mastadanil 4 жыл бұрын
В нейронках генераторы используются очень часто. Налету генерируют часть данных и подают на вход сети. Виде зачетное, спасибо!
@ОлегБудаев-г5п
@ОлегБудаев-г5п 6 жыл бұрын
Спасибо за ваши усилия!
@nitnatsnokk
@nitnatsnokk 5 ай бұрын
Отличный ролик
@slime_llove
@slime_llove 4 жыл бұрын
Харош мужик. Все понятно объяснил
@imgnl
@imgnl 6 жыл бұрын
Спасибо, Олег!
@Kersmaik
@Kersmaik 3 жыл бұрын
Спасибо за лучшие пояснения по языку python!
@Руссофобзатевающийрусофобию
@Руссофобзатевающийрусофобию 2 жыл бұрын
Я помню пример использования yield для программирования пульта для телевизора. Переключение каналов. И еще. Я думаю что кроме функции next() должна быть и функция preview().Ибо это логично.
@LordBott
@LordBott 4 жыл бұрын
Это лучшее объяснение, спасибо)
@xilagos
@xilagos Жыл бұрын
Красава Олежа
@igorkulibaba7287
@igorkulibaba7287 6 жыл бұрын
Очень уверенно, спасибо!
@fedyasavchuk1043
@fedyasavchuk1043 5 жыл бұрын
Спасибо!
@ЕвгенийПронин-ы9э
@ЕвгенийПронин-ы9э 6 жыл бұрын
Лучший гайд канал по питону. Спасибо, Олег.
@incontext8335
@incontext8335 3 жыл бұрын
спасибо огромное!!!
@envergurbanov9572
@envergurbanov9572 4 жыл бұрын
Спасибо большое.
@aliaskarisakov1147
@aliaskarisakov1147 5 жыл бұрын
лучший..... просто лучший
@Ruf4eg
@Ruf4eg 6 жыл бұрын
You are the god of explanations :D , a huge thank you and respect Oleg
@zaemiel
@zaemiel 6 жыл бұрын
Thank you!
@golotus
@golotus 6 жыл бұрын
Присоединяюсь ко всем положительным вышесказанным комментариям. Замечательные примеры и их объяснения. Вычеркнул из списка тем на изучения сразу три пункта - yield, next, generator. Разумеется надо бы поучится их составлять, но после разжеванного материала не составит никаких трудностей. В комментариях так же нашел тему, которую интересно было бы послушать, так же оставлю вам оставшиеся в моем списке. 1. async/await 2. Расширенные генераторы 3. threading 4. callback 5. contextvars
@zaemiel
@zaemiel 6 жыл бұрын
Добрый вечер, спасибо за отзыв. По асинхронности я начал серию - следите за обновлениями. На все вопросы за исключением threading и contextvars я в ней отвечу. По contexvars пока в планах пока даже не рассматривал (уж очень тема специальная и в целом относительно низкоуровневая).
@golotus
@golotus 6 жыл бұрын
@@zaemiel Уже приступил к изучению с азов о socket, ютуб любезно решил скрыть от меня полезные знания. Огромное спасибо, Олег, как за труды, так и за ваше терпение отвечать/читать комментарии и что самое главное слушать их.
@aleksandrsamuraev5028
@aleksandrsamuraev5028 6 жыл бұрын
Хорошее видно!)
@zaemiel
@zaemiel 6 жыл бұрын
Спасибо
@mlpython1089
@mlpython1089 2 жыл бұрын
range цикла for принимает/выдаёт целые значения. Вместо range можно написать генератор, который выдает float.
@RuslanKhamidoullin
@RuslanKhamidoullin 2 жыл бұрын
спасибо
@Небагафича-ф9л
@Небагафича-ф9л 6 жыл бұрын
Генераторы часто используются в асинхроных корутинах. Глядишь и до асинхронных движков доберемся
@zaemiel
@zaemiel 6 жыл бұрын
coroutine - и есть генераторы, subroutine - обычные функции. В Python нет формального закрепления понятию coroutine, а аналогичную функцию как раз выполняют генераторы.
@Небагафича-ф9л
@Небагафича-ф9л 6 жыл бұрын
Если верить tornado, то корутины могут быть основаны не только на фун. генераторах но и на конструкции async await Python 3.5 introduces the async and await keywords (functions using these keywords are also called “native coroutines”). Starting in Tornado 4.3, you can use them in place of most yield-based coroutines (see the following paragraphs for limitations).
@Небагафича-ф9л
@Небагафича-ф9л 6 жыл бұрын
Почитайте PEP 492 он определил(закрепил) coroutine как часть языка. www.python.org/dev/peps/pep-0492/
@zaemiel
@zaemiel 6 жыл бұрын
Мне вообще кажется, что мы с вами говорим об одном и том же разными словами. Раздел Coroutine object methods. Coroutines are based on generators internally, thus they share the implementation Ок, они закрепили формально понятие coroutine
@romansokolov9074
@romansokolov9074 2 жыл бұрын
А вот, кстати, поиск файлов, как минимум, в проводнике винды работает же как генератор. Хороший пример, чтобы понять в чем отличие от вываливания всего списка в конце поиска.
@glowworm3525
@glowworm3525 4 жыл бұрын
На другом языке пришлось реализовывать генератор с возвратом управления, а тут все лаконично:)
@9keepa
@9keepa 6 жыл бұрын
автор спасибо тебе! очень доходчиво и понятно! а самое главное ты указал где это обычно применяется! из ходя из этого все стало понятно!
@SHlNJlKARl
@SHlNJlKARl 4 жыл бұрын
Чудесное объянсение. Ешё вроде генераторы можно использовать для ленивых вычислений, если я не ошибаюсь
@amigo4884
@amigo4884 3 жыл бұрын
Я бы использовал while n > 0 в первых примерах. А так, всё круто!
@jeremiahBango
@jeremiahBango 5 жыл бұрын
Только один момент ты не рассказал. Что при вызове генератора посредством next он работает до yield, а n-1 остаётся на следующее обращение. Или это работает не так?
@hqier2652
@hqier2652 5 жыл бұрын
все четко объясняешь , продолжай в том же духе
@hey-rg9lk
@hey-rg9lk 6 жыл бұрын
ну пора и async/await объяснять
@bindera_zlaya_nata
@bindera_zlaya_nata 6 жыл бұрын
нормально обьяснения не встречал )) так что до всех дошло
@RuchejAlex
@RuchejAlex 2 жыл бұрын
Автор, ты не упоминул, что делать с ошибкой, когда в генераторе кончатся данные.
@AlexandrSpirit
@AlexandrSpirit 4 жыл бұрын
Не понятно с примером поиска на сайте Если пользователю нужно вывести первые 50, или от список от 50 до 100 товаров, то не проще ли запрос к базе соответствующий написать - не всё выдавать, а только нужный диапазон?
@kuptsov1
@kuptsov1 2 жыл бұрын
Не то чтобы проще, а именно так и делают. Никто не делает это через генераторы ); Генераторы могут подойти для генерации данных (рандомных или еще по какому-то алгоритму), но выбирать из базы на их основе - это плохая тема.
@dmitryponyatov2158
@dmitryponyatov2158 5 жыл бұрын
а есть видео реализации (синтаксических или бинарных) парсеров на генераторах?
@zaemiel
@zaemiel 5 жыл бұрын
нет, я пока не делал
@leomysky
@leomysky 4 жыл бұрын
Так как комменты пишу под роликами исключительно для продвижения канала, то расскажу, что в этом ролике Олег не использует звук 'th' Из-за этого его 'pyTHon casts' превратились в "пайТон кастс" В предыдущих роликах он так не делал Это не упрёк, а так, наблюдение Ибо в первом ролике вообще "питоний" пакетный менеджер Дико доставляет авторская манера повествования Видно, что получает удовольствие не только от того, что учит кого-то чему-то Но и потому, что учит этому так и тому, как и чему хочет он, не загоняя себя в рамки программы/учебного плана
@бумагабумага-с8л
@бумагабумага-с8л 5 жыл бұрын
Здравствуйте.Я посмотрел ваше видео и у меня есть вопрос.Что нужно написать, что б так-же само рандомно появилось одно из 3 предложений (знаю не по теме).Например print ("1предл.", "2 предл.", "3предл.").Как сделать что б вывелось только одно из трёх предложений?
@zaemiel
@zaemiel 5 жыл бұрын
смотрите random.choice()
@бумагабумага-с8л
@бумагабумага-с8л 5 жыл бұрын
@@zaemiel спасибо огромное!
@sashasashovic91
@sashasashovic91 2 жыл бұрын
Надо проверять что n>0 до работы с n .
@Всемогущийджон
@Всемогущийджон 6 жыл бұрын
Спасибо за видео. Прочитал книгу и не понял. Просмотрев ваш видеоролик понял эту тему.
@MortalKombatSector
@MortalKombatSector 2 жыл бұрын
мне постоянно выдает вот такое или подобное, ошибок нет и что это не понятно
@Opdeit
@Opdeit 6 жыл бұрын
из базы то эти данные тоже надо вытянуть)
@zaemiel
@zaemiel 6 жыл бұрын
о боже!
@Opdeit
@Opdeit 6 жыл бұрын
и не понял, что мешает при поиске данных в файле, прервать обычный цикл и вывести результат и если нужно можно и дальше продолжить искать
@zaemiel
@zaemiel 6 жыл бұрын
увы, суть объяснения до вас, похоже, не дошла. Это видео не про поиск, а про работу генераторов. Про поиск - это всего лишь жалкая аналогия или пример, просто чтобы проиллюстрировать суть работы генератора. Или, если хотите - это создание еще одной ассоциации того, чего вы еще не знаете с тем, что уже знаете.
@oskabarpablo4363
@oskabarpablo4363 6 жыл бұрын
У Генератор есть одна притягательная особенность: упражняясь с ним в общественном месте, вы обязательно привлечете внимание окружающих. Вот сейчас сестра показывает мне Генератор и корчит рожи. Какой низкий уровень культуры. Да куда нам в будущее рваться, с настоящим бы поладить, но что поделать, такова жизнь. Не буду забегать вперед, пытаться философствовать, пожалуй пойду посмотрю я кинофильм, где в главной роли Генератор. Приятная у нас беседа получается. Рад, что удалось поговорить. Хорошо. Если у вас есть Генератор, он от вас никогда не уйдет. Я бы просто смирился и жил с этим дальше. Вот так вот, господа. Разрыв мозга, или что они курят? Может быть Генератор? Правда, может я, хммм, сильно старомоден. Американцы до сих пор не понимают некоторые вещи, на всякого мудреца довольно простоты, или, как говорят на Руси, на всякий хитрый Генератор найдется Генератор винтом. Господин S. в недоумении: «Не могу понять, в чем дело. Я вижу, что Генератор носит мое имя, мое лицо и мое пальто, и что Генератор посвящаются стихи, подписанные «для тебя» и отправленные на мой почтовый адрес». Никто никогда не имел столько названий, сколько их есть у Генератор: «Лик Земли», «Генератор Востока», «Драгоценная жемчужина», «Сияющая точка земного шара». Генератор - не единственная связь человека с человеком. А вот «Ротаренег» - это Генератор наоборот.
@ViacheslavFomenko
@ViacheslavFomenko 5 жыл бұрын
Что вы курите?
@6mak6beat6prodhorrorcore2
@6mak6beat6prodhorrorcore2 2 жыл бұрын
Или я так туго соображаю, или эта функция 'yield' слишком сложная. Если честно, то я нихрена не понял.
@КоньЛюдоед-ф6ф
@КоньЛюдоед-ф6ф 5 жыл бұрын
Фуф. спасибо большое.
Уроки Python casts # 3 - Что означает *args, **kwargs
12:13
99.9% IMPOSSIBLE
00:24
STORROR
Рет қаралды 31 МЛН
UFC 310 : Рахмонов VS Мачадо Гэрри
05:00
Setanta Sports UFC
Рет қаралды 1,2 МЛН
How Strong Is Tape?
00:24
Stokes Twins
Рет қаралды 96 МЛН
Уроки Python casts #8 - Замыкания
10:30
Oleg Molchanov
Рет қаралды 47 М.
Всё об исключениях и работе с ними в Python
30:34
Диджитализируй!
Рет қаралды 51 М.
Как использовать *args и **kwargs в python?
11:22
Хитрый питон
Рет қаралды 6 М.
Основы асинхронности в Python #1: Введение
17:43
Уроки Python casts #9 - Что такое try - except
10:37
Oleg Molchanov
Рет қаралды 34 М.
99.9% IMPOSSIBLE
00:24
STORROR
Рет қаралды 31 МЛН