49 Функция генератор. Создание генератора при помощи yield Python

  Рет қаралды 72,809

egoroff_channel

egoroff_channel

Күн бұрын

Пікірлер: 80
@egoroffchannel
@egoroffchannel 6 ай бұрын
🫵 Теория без практики - ничто, поэтому 👇 🐍 stepik.org/course/63085/promo 👉 специально для тебя создал бесплатный топовый курс по Python 👉 В нем тебя ждет: 📗 более 400 практических заданий на программирование 📗 более 250 тестовых заданий на проверку материала 📗 десятки часов видеоматерилов по теории 📗 видеоразборы решения заданий 📗 текстовые материалы по урокам, примеры кода 📗 доступ к закрытому чату с дружественной обстановкой 📗 сертификат в случае успешного прохождения курса
@user-ng9vs5vw4k
@user-ng9vs5vw4k 2 жыл бұрын
Чисто вот по человечески спасибо. Обычным языком разжевал!
@lacieemai6103
@lacieemai6103 8 ай бұрын
господи, ну как же это понятно и элегантно. спасибо!
@АлисаА-и7ф
@АлисаА-и7ф 2 жыл бұрын
Артем ❤️ спасибо большое , вы просто супер 🙌 очень хорошо объясняете 🙏 все уроки смотрю ваши 🙌 прям очень классно объясняете 👍👍👍👍👍 и голос очень приятный ! Спасибо за ваш труд 🙏❤️
@vladoriginkos
@vladoriginkos 3 күн бұрын
хреново объясняет
@arsenshmid
@arsenshmid 3 жыл бұрын
Как же хорошо объясняете. Нам бы таких преподов))))
@CryptoSteps
@CryptoSteps 5 жыл бұрын
Луца читал, мало что понял. А теперь сначало смотрю ваше видео по теме, а после читаю Луца. Стал больше понимать. Благодарю Вас за труд!
@alexanderalexandrov3972
@alexanderalexandrov3972 5 жыл бұрын
Только за это же хотел поблагодарить. Вот, кто должен программирование в ВУЗах вести)))
@nobeing6242
@nobeing6242 4 жыл бұрын
потому что Лутц это графоманство, а не учебник
@ВалерияМалышева-ь1в
@ВалерияМалышева-ь1в 4 жыл бұрын
У меня Луц тяжело идет. Стиль изложения довольно запутанный, на мой взгляд.
@AJIagguH
@AJIagguH 4 жыл бұрын
Тоже после Лутца пришел. Однако то, что Егор рассказывает, я понимал уже из учебника (за исключением некоторых мелочей). Но Лутц ещё о других вещах касаемо генератора рассказывает. Вот их я не понял( P.S. Правда, я не очень понимаю, как на практике пригодится написание собственных функций zip и map :D
@AJIagguH
@AJIagguH 4 жыл бұрын
Я бросил Лутца на 600 странице. Рекомендую 10% времени посвящать книгам, 10% - теории, 80% - написанию кода
@ibnabdulahad3894
@ibnabdulahad3894 2 жыл бұрын
Артем спасибо большое, очень хорошо объясняете👍👍👍
@Dmitrii-Zhinzhilov
@Dmitrii-Zhinzhilov 2 жыл бұрын
Артём, огромная благодарность! 🔥👍 💯
@Karno333
@Karno333 Жыл бұрын
Очень грамотно и по человечески объяснил. Спасибо
@elenalevasheva3830
@elenalevasheva3830 3 жыл бұрын
Спасибо за урок, просто супер.
@ПетрУльянченко-с2ю
@ПетрУльянченко-с2ю 11 ай бұрын
Артем, вы гений.
@python_senior
@python_senior 2 жыл бұрын
Ждал интера, но не тут то было, на сцену вышел yield и Егорыч тяжело сглотнув все таки попробовал выговорить елд...но по привычке получилось нечто похожее на слово "елда".
@denistalko6585
@denistalko6585 2 жыл бұрын
Спасибо за отличное объяснение!
@drdizel777
@drdizel777 2 ай бұрын
Ты просто изумруд браток, спасибо тебе
@Jimmyyroblox
@Jimmyyroblox 2 жыл бұрын
Спасибо большое, очень доступно и понятно, только сейчас понял хотя до этого в других источниках не понимал
@АлексейКривчиков-м3ю
@АлексейКривчиков-м3ю 3 жыл бұрын
Шикарные уроки, спасибо!
@mazur_vg
@mazur_vg 2 жыл бұрын
Блеск! Спасибо!!!
@СергейМатвеев-г4м
@СергейМатвеев-г4м 2 жыл бұрын
Очень все понятно, спасибо!
@ЕрвандАгаджанян-в3к
@ЕрвандАгаджанян-в3к 3 жыл бұрын
Это было просто гениальное объяснение!
@kst5161
@kst5161 Жыл бұрын
Действительно хорошее объяснение)
@evgenyfetus
@evgenyfetus 2 жыл бұрын
Все очень понятно!
@osipov180
@osipov180 4 жыл бұрын
Отличный канал! Подписка и лайк. Спасибо за уроки.
@freedom4218
@freedom4218 8 ай бұрын
Спасибо большое
@АлексДан-ш2к
@АлексДан-ш2к Жыл бұрын
Лучший!!!
@brutsmart
@brutsmart 3 жыл бұрын
поставил лайк уже на 2й минуте. спасибо, за простое и понятное объяснение
@vasylcf
@vasylcf 4 жыл бұрын
Спасибо, очень доступно объясняете !
@yasuperdashakakasha
@yasuperdashakakasha 4 жыл бұрын
АААА! Я не могу въехать! Обновлено: Я детально посмотрела видео на след. день и всё поняла, спасибо!
@data19101988
@data19101988 Жыл бұрын
Может, добавить какие то команды, выводящие объем занимаемой памяти или какие другие показатели эффективности yield для ещё большей наглядности...
@makseo651
@makseo651 8 ай бұрын
Спасибо
@kz_Ali
@kz_Ali 3 жыл бұрын
Огонь!
@pulsarofsamsara1625
@pulsarofsamsara1625 Жыл бұрын
В примере с факториалом вместо yield, вписав print, получим тот же результат. Тогда преимущество функции генератора тут не совсем очевидна.
@Naumix_
@Naumix_ 4 жыл бұрын
спасибо за урок
@Klagerh
@Klagerh 5 жыл бұрын
Отлично +
@dizelvinable
@dizelvinable 5 жыл бұрын
Остальные темы я понял. В эту что-то не могу пока въехать. Наверное, позже вернусь, когда сформируются нужные нейронные связи в моей башке))
@Николай-ф3е7в
@Николай-ф3е7в 3 жыл бұрын
Ну что, сформулировались ?
@dizelvinable
@dizelvinable 3 жыл бұрын
@@Николай-ф3е7в Пришлось сконцентрироваться на PHP)) Пока занят попытками въехать в ООП)
@leni2646
@leni2646 3 жыл бұрын
@@dizelvinable Ну, что въехал?
@borg9549
@borg9549 3 жыл бұрын
Ну как, дошло?
@MrSunTrope
@MrSunTrope 2 жыл бұрын
@@dizelvinable ну что там, дошло?
@shakhzodbekbozorov7866
@shakhzodbekbozorov7866 5 жыл бұрын
Больше По питону
@TerrillTomko
@TerrillTomko 21 күн бұрын
Благодарю за детальный разбор! Хотел спросить по другой теме: На моем SafePal кошельке хранится USDT и у меня есть seed фраза. (alarm fetch churn bridge exercise tape speak race clerk couch crater letter). Может подскажете, как отправить их на Binance?
@jamjam3337
@jamjam3337 Жыл бұрын
👍
@AketzaliAlmazzan
@AketzaliAlmazzan 2 ай бұрын
Вы делаете замечательные видео! Хотел спросить по другой теме: На моем SafePal кошельке хранится USDT и у меня есть seed фраза. (behave today finger ski upon boy assault summer exhaust beauty stereo over). Можете подсказать, как перевести их на Binance?
@BohdanVR666
@BohdanVR666 4 жыл бұрын
Получается, генератор при вызове print(next(genf())) Запускает цикл и "ставит его на паузу" до следующего next() А после его вызова она начинает выполнение кода на следующей строке Правильно понял?
@justinianbasileus2833
@justinianbasileus2833 4 жыл бұрын
Выходит, что так.
@mynzhanshaikhy456
@mynzhanshaikhy456 2 жыл бұрын
после yield, pr не обновляться опят на один?
@Armlifeam
@Armlifeam 4 жыл бұрын
Я хочу индивидуальные уроки по Python
@MortalKombatSector
@MortalKombatSector 2 жыл бұрын
вот зачем нужна yield если это все равно считается итерацией словаря, я беру yield(ключ словаря) из цикла фор, потом в другом цикле вайл тру сохраняю его в список, беру из списка значение и удаляю из словаря, далее очищаю список самое интересное, что можно итерировать словарь по ключам, добавить в список (нужный вам)ключ и в "старшем цикле" фор удалить значение словаря и все работает
@MortalKombatSector
@MortalKombatSector 2 жыл бұрын
в 1 случае ошибка, нельзя изменять словарь во время итерации, зато список можно да пайтан? кто тебя пишет какой умный человек
@atriusvinius319
@atriusvinius319 2 ай бұрын
Нужно это редко и для специфических задач. Новичкам не нужно совсем.
@МаксимАндреев-я1г
@МаксимАндреев-я1г 4 жыл бұрын
Братан, а можешь напечатать чип, загрузить в него все свои знания и я их себе загружу в мозг, как в киберпанке
@egoroffchannel
@egoroffchannel 4 жыл бұрын
могу, но там будут баги)))
@yodapunishes
@yodapunishes 5 жыл бұрын
Исчерпывающе!
@sofiya41.
@sofiya41. 8 ай бұрын
почему ты находишь факториал как n + 1, а не n - 1 как объяснял в предыдущих уроках? это я не поняла
@kuzmichok8980
@kuzmichok8980 3 жыл бұрын
Артем, в наушниках на максималках плохо слышно.
@egoroffchannel
@egoroffchannel 3 жыл бұрын
Сейчас новый микрофон
@AzarovRom
@AzarovRom 4 жыл бұрын
всё круто, но не хватает send :(
@АлексейКривчиков-м3ю
@АлексейКривчиков-м3ю 3 жыл бұрын
def fact(n): p = 1 for i in range(1, n + 1): p = p * 1 yield p for i in fact(10): print(i, end = " ") У меня получается не факториал, а список из десяти единиц. Почему?
@Mcmern
@Mcmern 3 жыл бұрын
Напиши в четвертой строчке i вместо единицы
@usj4871
@usj4871 2 жыл бұрын
yield i
@Markisi0
@Markisi0 Жыл бұрын
6:32 что значит не хранятся в списке? Вы же сами сказали выше, что функция ставится на паузу. Вы просто не явно создали этот список, а "поручили" сделать это самому python'у. 6:36 каким образом мы экономим память? В чём тут экономия? Запустите код с memory_profiler и вы увидите, что в одном, что в другом случае вы потребите 46 мегабайт памяти. В случае с yield даже больше.
@torchilla4630
@torchilla4630 Жыл бұрын
Так ты попробуй создать список с 1000000000 елементов и получишь ошибку по памяти(а если мощи компа хватит то получишь жесткое подвисание), в то время как с генератором такой ошибки не возникает. Так они и не храняться в списке, тут отдельно выдается каждое значение, сам генератор не хранит всего списка значений, а поочередно выдает каждый елемент отдельно на базе предыдущего, поэтому и память экономится, потому что мы не храним одномоментно 1000000000 елементов.
@Markisi0
@Markisi0 Жыл бұрын
@@torchilla4630 Вы точно на мой комментарий отвечали? 😑При чём тут хранение, если выше я говорил про вычисление факториала и экономию памяти? Речь о том, что потребление скриптом памяти с оператором yield и без него будет одинаковое. Можете проверить сами: Файл_1 from memory_profiler import memory_usage def fact(n): output = 1 for i in range(1, n+1): output *= i yield output def main(): output_list = [] for dig in fact(500): output_list.append(dig) print(f'{output_list[-1]=}') main() print(f' {memory_usage()=}') Файл_2 from memory_profiler import memory_usage def fact_2(n): output = 1 for i in range(1, n+1): output *= i return output def main(): output_list = [] for dig in range(501): output_list.append(fact_2(dig)) print(f'{output_list[-1]=}') main() print(f' {memory_usage()=}')
@FireFox-cp8fc
@FireFox-cp8fc Жыл бұрын
@@Markisi0 Да, отчасти вы правы, но дело в том, что при работе с оператором yield, после вывода значения, предыдущие значения очищаються с памяти. Вот, если взять первый пример. С начало программа нам выводит число 43, потом число 65 и при выводе числа 65, число 43 стираеться с памяти, будто его и не было. А если повторить данную махинацию с оператором return, то все данные останутся в памяти. Надеюсь, что понятно обьяснил..
@Markisi0
@Markisi0 Жыл бұрын
@@FireFox-cp8fc Вы лучше объясните результат выполнения двух вариантов кода выше - почему при использовании yield и без него памяти затрачивается одинаковое количество?
@slightlygruff
@slightlygruff 2 жыл бұрын
йилд
@vsevolod9987
@vsevolod9987 Жыл бұрын
Нет
@chajnikvest1927
@chajnikvest1927 5 жыл бұрын
1
@elizabetholsen6605
@elizabetholsen6605 Жыл бұрын
Тяжко
@вМайнкрафтена
@вМайнкрафтена Жыл бұрын
Артем, ну ты тараторишь, чуть помедленнее пожалуйста, приходится перематывать
@Всепровсе-б2х
@Всепровсе-б2х 3 жыл бұрын
Спасибо за урок
The IMPOSSIBLE Puzzle..
00:55
Stokes Twins
Рет қаралды 196 МЛН
Why no RONALDO?! 🤔⚽️
00:28
Celine Dept
Рет қаралды 97 МЛН
Deadpool family by Tsuriki Show
00:12
Tsuriki Show
Рет қаралды 3,5 МЛН
TEAM SPIRIT: SATANIC & RUE INTERVIEW (ENG SUB)
20:24
Team Spirit
Рет қаралды 83 М.
Python - полный курс для начинающих. Этот навык изменит твою жизнь.
5:27:42
Yield Python. Complete tutorial on Python generators from scratch
8:05
46 Генераторы списков Python | List comprehension
10:30
egoroff_channel
Рет қаралды 102 М.
Python  - Полный Курс по Python [15 ЧАСОВ]
15:41:56
Bogdan Stashchuk
Рет қаралды 870 М.
The IMPOSSIBLE Puzzle..
00:55
Stokes Twins
Рет қаралды 196 МЛН