Многие не знают эти Python фишки / ТОП 6 редких фишек Python

  Рет қаралды 48,606

ZProger [ IT ]

ZProger [ IT ]

Күн бұрын

⭐ Курс ООП и Приват канал: www.zproger-school.com/?...
⭐ Телеграм канал: t.me/+shh-qh1wVicwM2Q5
В данном видео рассмотрим 6 фишек Python, о которых редко говорят.
Если вы новичок в Python, то примеры из видео помогут улучшить ваш код и сделать более простые конструкции.
Многие не знают эти фишки в Python, особенно если речь идет о новичках, и цель данного видео помочь вам в них разобраться.
📁 Github: github.com/Zproger
📁 Все плейлисты с уроками: bit.ly/39GaY89
📁 Связаться со мной: zproger777@gmail.com
📁 Поддержать канал: github.com/Zproger/donate
Тайм-коды:
0:00 - Что будет в видео?
0:31 - 1. Можно ли добавить атрибуты в функцию?
1:17 - 1.1 Подвох при использовании атрибутов
1:48 - 1.2 Стоит ли использовать такой подход?
2:42 - 2. Как работает for else?
4:02 - 3. Как работает try else?
4:56 - 3.1 Где применяют finally на практике?
5:23 - 4. Разделители int/float. Представление чисел Python
5:54 - 5. Как выполнить код в Python через строку?
6:12 - 5.1 Почему eval и exec могут быть опасными?
6:43 - 5.2 Риск выполнения произвольного кода
6:54 - 6. Почему Ellipsis != None?
7:22 - 6.1 Чем отличается Ellipsis от None?
7:55 - 6.2 Что если записать в список ссылку на самого себя?
8:28 - 6.3 Как работает бесконечный список?
8:58 - 6.4 Как используют Ellipsis в виде аргументов функции?
9:48 - 6.5 Как Ellipsis используется в numpy?
10:35 - 1000 лайков == Новое видео с фишками Python

Пікірлер: 122
@user-uo6rq1bl5g
@user-uo6rq1bl5g Жыл бұрын
А у вас было такое что вы запускали print("Hello world") а в итоге вы сидели перед призедентами всех стран и объясняли как вы запустили ракету NASA на Марс и она удачно приземлилась и как вы смогли решить все задачи тысячилетия
@zproger
@zproger Жыл бұрын
Было....
@kutsokon
@kutsokon Жыл бұрын
Конечно, было, но я запускал print(“Goodbye world…”)
@bobrishe03
@bobrishe03 Жыл бұрын
Разумеется было. И у друга было, и у брата было. Но знаете, вот был у нас такой случай, кузен мой запустил print("Hello world"). И вот вы не поверите, но каким то образом с ним такое не произошло. Я без понятия, что именно он сделал не так, но он не просто не оказался перед президентами всех стран, у него даже ракета NASA на Марс не полетела, можете себе представить?
@lintop3908
@lintop3908 Жыл бұрын
Всм, а я просто попрыгал на одной ноге, покружился 5 раз, досчитал до 30 и мне сразу позвонили все президенты, и под подушкой ещё ракету NASA нашёл
@maximhlinsky6488
@maximhlinsky6488 Жыл бұрын
У меня после этого кода, удалилась ОС, и выскочило последнее сообщение : "рукожоп!"
@posreadyxp3939
@posreadyxp3939 Жыл бұрын
Про Elipsis я знал минимально, а теперь благодаря этому ролику я узнал более подробно о нём и где его использовали/используют. Спасибо
@zproger
@zproger Жыл бұрын
Рад что видео помогло =)
@TopUser2022
@TopUser2022 Жыл бұрын
Знал только 3 фишки, очень полезное видео) Сними, пожалуйста, видео по asyncio, думаю, многим будет полезно)
@zproger
@zproger Жыл бұрын
Когда-то сниму
@A5ter
@A5ter Жыл бұрын
Спасибо! Как раз тренировался в написании ботов для телеги, очень помогло.
@zproger
@zproger Жыл бұрын
=))
@MrPalianytsia
@MrPalianytsia Жыл бұрын
Нравится всё, контент, подача, так держать.
@zproger
@zproger Жыл бұрын
Благодарю
@IvanIvanov-dh3sg
@IvanIvanov-dh3sg Жыл бұрын
Спасибо за интересное видео, респект автору)
@zproger
@zproger Жыл бұрын
Спасибо
@xenopses
@xenopses Жыл бұрын
Вот последняя реализация троеточия очень хороша очень. мне понравилось. я вот этот момент вообще пропустил видимо в жизни. Вот такие видио нужны очень . Такие вот крохотные фишки делают код нереально красивым .
@zproger
@zproger Жыл бұрын
Благодарю
@barik6478
@barik6478 Жыл бұрын
Твой канал для меня - ценная находка! Так держать :) Люблю также всякие фишки, связанные с оптимизацией. Например, использование while(1) вместо while(True) или (x & 1) вместо (x % 2 == 0), что работают немного быстрее. Хорошая идея для будущего видео, кстати 😉
@zproger
@zproger Жыл бұрын
Спасибо за идею, надо будет реализовать =)
@user-po1ro2rc6j
@user-po1ro2rc6j Жыл бұрын
а while 1: и while True: не одно и тоже ??
@RokyTime
@RokyTime 7 ай бұрын
​@@user-po1ro2rc6jтоже есть такое сомнение. Использовать сразу бул или то, что в него переведется
@MagMigo
@MagMigo Жыл бұрын
Лично для себя - ничего нового не узнал, но иногда кидаю твои видео некоторым людям, когда лень объяснять самому :D. На статью всякие не кидаю, потому что знаю, что не прочитают
@zproger
@zproger Жыл бұрын
А это хорошо, спасибо =))
@MagMigo
@MagMigo Жыл бұрын
Ещё такой прикол: иногда узнаю про что-то и буквально через день-два в твоём видео будет рассказываться, что это Ещё, может быть, тут кто-то знает hellowfacey (но вряд ли), рил крутой челик был, благодаря ему я в питоне стал из начинающего в почти не начинающего, хд Максимум, что я серьёзного писал и сейчас пишу - библиотека для создания дс ботов, сложновато в некоторых моментах, но в целом - норм. Хотелось бы ролик про архитектуру DDD, не до конца её понимаю
@inquisitor_okabe
@inquisitor_okabe Жыл бұрын
Честно - зашёл с убеждением, что увижу то, что уже знаю. Внезапно, не знал нихрена.
@zproger
@zproger Жыл бұрын
Это хорошо, значит буду продолжать =)
@starstroy4949
@starstroy4949 Жыл бұрын
Здравствуйте ! Мне 47 лет, в программировании ноль. Имею тех. образование.Недавно увидел один из ваших роликов… и понял,что не хочу стареть в полном неведении в данной сфере😁. Приобрёл книгу Тони Гэддиса(Python ).Пишу первые программки print,a=float(input(‘…..’ ,..))и т.п.Вопрос:как вы считаете стоит ли мне заниматься этим в серьез(могу ли претендовать на работу в будущем) учитывая возраст😞?Если у меня есть шанс , с удовольствием бы ознакомился с вашими советами и курсами. Спасибо!
@zproger
@zproger Жыл бұрын
Здравствуйте, возраст не имеет значения, главное выделять хотя бы немного времени каждый день, не нужно сразу ставить себе цель изучать программирование по 8 часов в день, ибо можно быстро перегореть, нужно начинать с маленьких шагов, например поставить себе цель каждый день прорабатывать 1 страницу из книги, со временем вы привыкните к этой нагрузке и появится желание изучать больше. Самое главное всё это закреплять практикой.
@alexes.bochkarev
@alexes.bochkarev 10 ай бұрын
Про for else узнал в процессе написания боевого кода, когда else внутри цикла не отрабатывал. Удивился, когда узнал, что нужно выносить else за пределы цикла
@T0unFl3it
@T0unFl3it Жыл бұрын
Спасибо, видео интересное! Знал о большинстве возможностей, про Ellipsis чуток нового только добавилось🙂 Большая часть из этих возможностей будет поддерживаться также и в моём будущем языке программирования, за исключением динамического добавления атрибутов в объект, как показано в первом примере (с этим гораздо сложнее, чем в Python, т.к. язык будет иметь градуальную типизацию и явное объявление слотов/свойств данных в классах, и вообще построен во многом иначе: будет упор на модульность и расширяемость синтаксиса и семантики языка, а также используемой модели данных. Вместо динамического добавления атрибутов будет поддерживаться работа с динамически добавляемыми метаданными, хранимыми в специальном "магическом" свойстве "^_meta_^", существующем во всех объектах). Вообще, добавление произвольных пользовательских атрибутов в функциональные объекты "на лету" (как в функции "test" на 1:08) требуется достаточно редко, в отличие от "статических" метаданных, добавляемых декораторами в местах объявления функций, и я удивлён, что автор ролика нашёл этому практическое применение😮 Возможно, в телеграм-ботах это используется чаще, чем в остальном коде на Python, плохо знаком с этим пока😊
@hhhhhhhhhgfh
@hhhhhhhhhgfh Жыл бұрын
Учусь в магистратуре и у меня начался курс параллельного программирования. Выполняю задания на python. Фишки с "else" очень пригодятся, спасибо тебе большое!!!
@vladimirkorshunov7734
@vladimirkorshunov7734 Жыл бұрын
Параллельное программирование на Python? Привет многопоточность. :)
@zproger
@zproger Жыл бұрын
Спасибо за комментарий, рад что видео было полезное =)
@QwDragon
@QwDragon Жыл бұрын
Вот это реально крутые фишки!
@zproger
@zproger Жыл бұрын
Благодарю
@dmitriyneledva4693
@dmitriyneledva4693 Жыл бұрын
я недавно узнал, что словарный дэл вырезает рэйнджи в листах: l =[1,2,3,4,5,6,7] del [1:3] l # l == [1,4,5,6,7]
@timgen-iu1qo
@timgen-iu1qo Жыл бұрын
4:02 А почему не записать print в try, под строчкой 10 / number? Если тут разницы нет, то есть случаи где есть?
@zluka7951
@zluka7951 Жыл бұрын
ку, какой дистрибутив ты используешь?? Помню ты где-то отвечал уже, но не могу найти :
@yuriandrienko4220
@yuriandrienko4220 Жыл бұрын
Как говорил великий Диоген: сколько же в мире есть вещей, без которых я могу обойтись.
@pylounge
@pylounge Жыл бұрын
Круто. Про ссылку на список в списке не знал)
@zproger
@zproger Жыл бұрын
Благодарю за комментарий, рад видеть тебя на канале =)
@seoonlyRU
@seoonlyRU Жыл бұрын
нормас))) лайк от СЕООНЛИ
@4oxerlive
@4oxerlive Жыл бұрын
Насчет TgBot'a. Для записи нескольких данных для каждой сессии была инициализирована переменная со пустым списком. В конце работы, после передачи данных, список очищался. И в начале была проверка, пустой ли список. Костыли)
@tinylith1603
@tinylith1603 Жыл бұрын
если говорить об else для циклов, можно сразу вспомнить, как из вложенного цикла прервать выполнение цикла снаружи: for i in range(0,m): for j in range(0,n): if matrix[i][j] == 0: break else: continue break Здесь в случае, если мы находим 0 в матрице, срабатывает первый break, пропускается else и отрабатывает второй break, завершая внешний цикл, если же элемент ненулевой, else: continue продолжает выполнение внешнего цикла, но вообще такой код обычно требует рефакторинга
@user-gf6er4ug6g
@user-gf6er4ug6g Жыл бұрын
я знал про eval, exec про связку while else, про связку try except finally, а вот про try - else - не знал. Знал про атрибуты функции. Про Елипсис так нифига и не понял. Причем тут список помещенный сам в себя? То что я могу бесконечно извлекать из него нулевой элемент это закономерно - бесконечная ссылка на самого себя. Хотя не обязательно нулевой, он может быть любый, может быть во вложенном списке, и в кортеже, и со значениями словаря такая шляпа тоже работает) Аналогично и с атрибутами класса(функции) - можно добавить ссылку на самого себя и извлекать до бесконечности. И причем тут Елипсис? Я поместил в список Елипсис, но он не стал ссылкой на список. Надо признать, к моему великому стыду, я раньше не пробовал поместить список сам в себя. Но то что там появляются три точки - походу просто схожий синтаксис, но не Елипсис. Разделение подчеркиванием целых чисел - только с версии 3.6
@witalya228
@witalya228 Жыл бұрын
фишка с for else удобная, раньше были случаи где это помогло бы
@zproger
@zproger Жыл бұрын
Это да
@user-po1ro2rc6j
@user-po1ro2rc6j Жыл бұрын
Питон, конечно же прекрасный язык программирования, но во всех мануалах и туториалах написано что лучше не переопределять функцию на саму себя. И лучше не заниматься последовательным присваиванием одного объекта двум и более "переменным", потому что если вторая или последующая "переменная" примет изменяемую последовательность на месте, то вслед за одной поменяются все остальные "переменные" которые участвовали в последовательном присваивании. Так что лучше разделять и упорядочивать, так и приятней читать после кого-то код и код становится обслуживаемым и менее тривиальным .... ;) Короче всем удачи в изучении Пайтона !
@user-io7ji9uz4y
@user-io7ji9uz4y Жыл бұрын
Хароош
@zproger
@zproger Жыл бұрын
Благодарю =)
@GasanIsv
@GasanIsv Жыл бұрын
Довольно познавательный контент, если ты новичок в написании кода на Python. Лично для меня новое было только про элипсис, но все равно новое же). Продолжай в том же духе! (づ ̄ 3 ̄)づ
@zproger
@zproger Жыл бұрын
Спасибо, рад стараться =)
@KvantGD
@KvantGD Жыл бұрын
Помню как начал писать программу для разделения строки по символу... До того как узнал про split
@zproger
@zproger Жыл бұрын
:D
@nakidai
@nakidai Жыл бұрын
Но ведь для разделения по символам надо использовать list 🤔
@scrooge6603
@scrooge6603 Жыл бұрын
Я ни одной штуки не знал, 2 года в разработке но всеравно интересные штуки
@zproger
@zproger Жыл бұрын
Благодарю. Это круто что всегда есть новые фишки, даже спустя много лет разработки. Сам постоянно нахожу что-то интересное =)
@TheAlexandr124
@TheAlexandr124 Жыл бұрын
Приятно что автор читает комментарии. Знал только про инфо перед элепсис) А первую фишку, так вообще не понял))) Круто!
@user-sb3dy6mk6s
@user-sb3dy6mk6s Жыл бұрын
Немного не понял, в чем тогда различие между b = eval('a + 2') и b = a + 2 ??? Объясните, пожалуйста.
@yuriandrienko4220
@yuriandrienko4220 Жыл бұрын
Eval позволяет сделать сам алгоритм расчета динамическим. Представьте, например, что расчетную формулу вводит пользователь, хотя это и плохой пример.
@NisT_10
@NisT_10 Жыл бұрын
Eval и Exec очень полезные функции, без eval я вообще не смог бы жить) Но! Они действительно очень опасные и именно поэтому... from ast import literal_eval)
@MrEmileify
@MrEmileify Жыл бұрын
круть
@Enuvin
@Enuvin Жыл бұрын
Знаешь ли ты, вдоль ночных дорог
@zproger
@zproger Жыл бұрын
:)
@DmitryRomantsov
@DmitryRomantsov Жыл бұрын
Нууу ,знать я знаю, но про ... и про for else - регулярно забываю
@zproger
@zproger Жыл бұрын
Бывает
@Anonim-im6ln
@Anonim-im6ln Жыл бұрын
👍👍👍👍👍
@zproger
@zproger Жыл бұрын
=)
@aibaster
@aibaster Жыл бұрын
А это всё из-за отсутствия типизации.... А вот была бы типизация.....
@markkogan6551
@markkogan6551 Жыл бұрын
@zproger
@zproger Жыл бұрын
@eagold
@eagold Жыл бұрын
для меня было новым else у фора и елипсис
@zproger
@zproger Жыл бұрын
Отлично
@cryptoworkdonkey
@cryptoworkdonkey Жыл бұрын
eval() осмеливаюсь использовать только если возвращается bool .
@zproger
@zproger Жыл бұрын
=)
@mrLumen2
@mrLumen2 Жыл бұрын
Для "for ... else ..." лучше бы взяли лингвистическую конструкцию "for ... after pass"
@zproger
@zproger Жыл бұрын
возможно, возможно
@azamtoiri
@azamtoiri Жыл бұрын
Можно название темы?
@zproger
@zproger Жыл бұрын
Dracula
@user-sl5lc8xx4q
@user-sl5lc8xx4q Жыл бұрын
5 из 6 но почему-то эллипсис не знал
@zproger
@zproger Жыл бұрын
=)
@sabovruslan
@sabovruslan Жыл бұрын
Чудове відео, але так як я тіки починаю вивчати пайтон, то під кінець не дуже зрозуміло було..
@zproger
@zproger Жыл бұрын
Это придет с опытом
@konstkaras
@konstkaras Жыл бұрын
Здравствуйте! Пишу на Java, заглянул посмотреть что у вас есть. (Числа через _ у нас тоже есть). Интересно, да.
@konstkaras
@konstkaras Жыл бұрын
1. В Java этого нет, объекты это объекты, методы это методы. Если есть такое усложнение, надо делать класс и объект. 2. for/else нет. Может быть и полезно, но в целом сам break не любят и используют редко. Можно вынести в отдельный метод и сделать return вместо break. 3. catch/else нет, а почему содержимое блока else не вставить просто в конце try? или после finally в том же методе? 4. это есть;) 5. этого нет - противоречит компилируемой природе языка, и да, опасно, плюс усложняет отладку. Так-то есть и вызываемые из Java-кода компиляторы, и встраиваемые интерпретаторы третьих языков, и это применяется во всяких служебных приложениях, но самому использовать - сильно на любителя. 6. если объект ссылается на себя - усложняет и сериализацию, и отладку (падает toString), так что это избегают хотя бы для данных; а тип такого объекта - он сам себе тип. А так абстракция интересная, но в Java нет tuples и много чего ещё для чего ... нужен.
@dazdess
@dazdess Жыл бұрын
Ничего нового не узнал. Обычное видео пересказа книги Лутца
@zproger
@zproger Жыл бұрын
Странно, потому что я не брал примеры из этой книги
@dazdess
@dazdess Жыл бұрын
@@zproger сейчас в параллель читаю. Всё что ты рассказываешь там есть, за исключением последнего)
@user-io7ji9uz4y
@user-io7ji9uz4y Жыл бұрын
Круто конечно, но я вряд-ли буду такое использовать но знать такое всё же неплохо(могу в**бываться)
@zproger
@zproger Жыл бұрын
А почему бы и нет =)
@user-vl1el8bp7y
@user-vl1el8bp7y Жыл бұрын
Две фишки я знал
@zproger
@zproger Жыл бұрын
=)
@ARSEN55630
@ARSEN55630 Жыл бұрын
Я взнав с цього відео про Elipsis
@Yevgeniy2010
@Yevgeniy2010 Жыл бұрын
Знал только eval, остальные либо нет, либо частями
@zproger
@zproger Жыл бұрын
=)
@eugenedukatta9355
@eugenedukatta9355 7 ай бұрын
"В питоне все есть объекты, поэтому мы можем использовать функционал как для любого объекта..." ага, прикрепите атрибут к целому числу (к объекту типа int) и покажите что у вас получилось
@user-ed3uu2lx9v
@user-ed3uu2lx9v Жыл бұрын
С полями для функции это говноподход js. Если надо добавить что то к событию унаследуйся от него или оберни его.
@zproger
@zproger Жыл бұрын
Там была такая задача, что это не сработает, только добавление аргументов послужило выходом из ситуации
@alexeyxopyc2471
@alexeyxopyc2471 Жыл бұрын
все равно не понял почему называется эллипсис и почему это считается фишкой) тоесть мне понятно как отрабатывает а[0][0][0]... но это же просто ссылка на изначальный список в 0 индексе :) а вот с примером bool(...) и bool(none) непонятно - что помещается в bool() при (...)? такое ощущение что (none) это бесконечная пустота, а (...) бесконечное непонятно что)
@edgarfedosov1440
@edgarfedosov1440 Жыл бұрын
... - указатель на None. А None - вообще ничего. :))
@mooovies6645
@mooovies6645 Жыл бұрын
Елсе это зайти в душ после удачной пробежки :) иначе может случится что-то что в душ не попадешь :)
@thmUNIX
@thmUNIX 10 ай бұрын
знал 4/6 фишек
@mrslashx
@mrslashx Жыл бұрын
"Массивная рекурсия"
@zproger
@zproger Жыл бұрын
=)
@nikitacunskis1853
@nikitacunskis1853 Жыл бұрын
for else это очень странный try catch
@andreu_k
@andreu_k Жыл бұрын
Ну 2 фишки знал...
@zproger
@zproger Жыл бұрын
Круто =)
@sergeibalmondov5015
@sergeibalmondov5015 Жыл бұрын
Я прочитал 66 страниц книги think python за 2 дня. Это нормально?
@gleznik
@gleznik Жыл бұрын
Есть ли смысл смотреть подобные видео если знаешь основы языка и то не досконально ?
@zproger
@zproger 11 ай бұрын
Есть, будет более глубокое понимание
@artugun1
@artugun1 Жыл бұрын
А ты решила нужн finally? Если это пришло от C, то нет вопросов
@mrfang5908
@mrfang5908 Жыл бұрын
а фишки где?
@Gorlung
@Gorlung Жыл бұрын
бесят куча путей в консоле.. каждый раз среди них пытаешься за две секунды углядеть сам аутпут.. ты ж видеоблогер.. сделай аккуратненько, для людей..
@Sultan69996
@Sultan69996 3 ай бұрын
А вы знали что если написать хороший комментарий автор данного канала улыбнётся 😂😂😂😂😂? Теперь вы знаете что это возможно 😅😅😅😅😅.
@zproger
@zproger 3 ай бұрын
;)))
@equilibrado092
@equilibrado092 Жыл бұрын
Педагог из тебя не оч
@zproger
@zproger Жыл бұрын
=D
@nargan1129
@nargan1129 Жыл бұрын
1) Не знал 2) Не знал что else выполняется если не сработал break (или если его нет) 3) Не знал что в этой конструкции могут быть else и finally 4) Не знал 5) Знал 6) Не знал 6.2, 6.3, 6.4 и 6.5 И да, ты просто переводишь контент с канала mCoding, а не делаешь его сам.
@zproger
@zproger Жыл бұрын
Перед тем как такое писать, что я что-то там перевожу, возьмите это видео, которое вы считаете переводом, и во-первых сравните контент и примеры, которые вообще не похожи между собой, а во-вторых сравните текст, если бы я переводил, слова были бы 1в1, я ничего не перевожу, покажите мне где на MCoding есть такое видео? И не нужно спамить под каждым видео то, что якобы это перевод, так как вы даже это не проверили, это чисто ваше мнение, которое не подтверждено никакими примерами, такого видео на мкодинг никогда и не было.
@katestar6578
@katestar6578 Жыл бұрын
веселый набор кривых и поломанных костылей
Почему not not value БЫСТРЕЕ bool в Python?
10:36
ZProger [ IT ]
Рет қаралды 22 М.
WHO DO I LOVE MOST?
00:22
dednahype
Рет қаралды 14 МЛН
Китайка и Пчелка 4 серия😂😆
00:19
KITAYKA
Рет қаралды 3,6 МЛН
$10,000 Every Day You Survive In The Wilderness
26:44
MrBeast
Рет қаралды 130 МЛН
ТОП 8 Редких и Удобных фишек в Python
10:57
ZProger [ IT ]
Рет қаралды 27 М.
Меняла стек в IT 7 раз - делюсь опытом!
34:49
IT-Собеседница
Рет қаралды 21 М.
18 Фишек Python о которых мало кто говорит
14:13
28 Вложенные циклы Python
16:45
egoroff_channel
Рет қаралды 104 М.