Python 3.10 - Лучший новый инструмент Pattern Matching и его возможности
Vložit
- čas přidán 14. 04. 2022
- В релизе Python 3.10 мы получили довольно много различных дополнений, и одно из них это Pattern Matching, который создан, чтобы сделать ваш код намного чище и быстрее.
⭐ Курс ООП и Приват канал: www.zproger-school.com/?...
⭐ Телеграм канал: t.me/+T6QZGzXUSZIwOWZh
В данном видео мы полностью рассмотрим этот инструмент и вы сразу же сможете применять его в своих проектах. Это в разы ускорит написание кода и составление сложных и непонятных выражений, в Match/case это делается в разы проще и к тому же это будет легко поддерживаться.
📁 Github: github.com/Zproger
📁 Все плейлисты с уроками: bit.ly/39GaY89
📁 Связаться со мной: zproger777@gmail.com
📁 Поддержать криптовалютой: github.com/Zproger/donate
Как вам инструмент? 🙂
if "make" in command )
Уже давно пользуюсь, удобно
@@user-iu6xg8wo8l Офигенно!
классный
Балдеж
Когда я начал изучать питон, мне не хватало switch, как в C++. Хорошая вещь!
Согласен :)
Когда-то давно в школе меня учили, что использовать switch..case - последнее дело, наравне с goto.
Не знаю, почему автор видео сказал, что match..case быстрее if..else, мои тесты показывают, что медленнее, иногда в разы.
При этом, в зависимости от ситуации, match..case может быть как более громоздким, чем if..else, так и менее. Имхо, его можно использовать, когда есть много однотипных вариантов ветвления. 9:50 - отличный пример. А вот то, что на 9:14 выглядит как то, что не надо делать.
@@Siztкогда-то давно меня научили что goto использовать просто прекрасно… откройте ядро линуха🥴
Надо больше видео про 3.10, там много интересного :)
Мелкомягкие уже больше 10 лет назад рекомендовали везде где есть возможность использовать case вместо if, для улучшения структурирования кода и ускорения общей работы кода. Спасибо, Дружище!
Просто суперское видео! Автор красавчик! Спасибо!
Благодарю!
Дождалииись!!!
:D
Видос просто обалденный, все кратко и по делу, информация преподнесена максимально понятно, сам учу питон самостоятельно и в колледже, мне нравится этот метод, выглядит очень красиво, читается легко, кайфую
Кайф =)
Сам поступаю в универ. Желаю удачи вам в колледже!
Сделай пожалуйста более подробный видос где на практике применять if/else, а где match/case.
Как-то дойдут до этого руки, спасибо
Коммент для продвижения. Инструмент просто огонь!
Пушка. Спасибо
Спасибо что рассказал это очень удобно
Хорошее видео, спасибо
Просто охеренная вещь! Спасибо огромное!!!
Супер, спасибо
Рад что понравилось
Ультра круто 👍
Cool!
у нас в конторе давно 3.10))) буквально вчера в микросервисе Pattern Matching использовал в одном месте, гденудно было отловить тип бизнеспроцесса в JSON от другого микросервиса)) читается быстрее и удобнее чем if/else)))
Это круто что уже начали применять инструмент :)
Хочу пересматривать это снова и снова. Чтобы понять как можно такое использовать на максимум. Вообще красиво выглядит.
Благодарю
Ничего себе, не думал что match case имеет такой широкий функционал.
Ага, достаточно мощная штука)
Достаточно удобно, но я уже привык к старому доброму if else 😁
Это да, главное знать где лучше применить if а где match
круто
Питонисты изобрели свитчкейс)
Даа))
ну это круче просто свитч кейса
Благодарю тебя. Изучу этот прикол
Пожалуйста :)
щикаррно
Благодарю
Когда дошли до скобочек, сразу пошли какие то флешбеки с регексов
:D
Сильный урок. Спасибо!!!
Пожалуйста :)
имба
Благодарю
Будем ждать следующих роликов💥
Спасибо :))
Классный инструмент, прям как в С++
Спасибо! Очень полезный tool, Успехов вашему каналу с меня палец вверх)))
Благодарю за поддержку :))
о вы из англии
Ввааауу как круто мне на виндовс 7 тооо, спасибоо, вовремя как всегда простоо
:)
вовремя я начал Питон учить, он как раз становится похож на нормальный язык. кейсы даже в SQL есть, причем давно, наконец то и Питон обзавелся
=)
Интересно как же оно быстрее чем if/else, если конструкция match case транслируется в байткод в те же операторы что и при трансляции if / else ????
топ видео,что за компилятор вы используете на видео ?
В питоне нет компилятора :)
Это интерпретатор версии 3.10
@@zproger понял,спасибо
В другом ролике смотрел проверку скорости if и match case. Так вот if был быстрее в три раза, match case использовали для более читаемого кода.
почему у меня не работает match/case ? пишет нет таких переменных, версия 3,10,5
инструмент топ
ага :)
Жду обзор на python 3.11)
Python 3.11 это вообще бомба :))
Но сделаю уже ближе к релизу
@@zproger будем ждать)
Кстати, у телеграмма обновление вышло, добавили возможность создавать веб интерфейсы в ботах
Спасибо, может быть покажу это в новом видео, если оно окажется интересным :)
@@zproger конечно интересно! Будет круто, если вы раньше всех про это снимете)
отличный инструмент
Благодарю
До этого видео у меня были ложные воспоминания что в питоне всегда был свитч, но я им не пользовался из за лени) А оно вон как оказывается) XD
Бывает)
🔥🔥
Спасибо :)
Отличный контент делаешь БРО!👍 Я уже своим студентам занёс) так им оч зашёл свич)
Отлично, рад что всем понравилось =)
Странно, что так поздно добавили. В Visual Baisic такая конструкция была лет двадцать, если не больше, а это вроде далеко не самый передовой ЯП.
Это да, странно
в ВБ эта конструкция куда дольше существует. в ВБ 4 она вроде как уже была. а он был запущен задолго до 2000 года.
На привью значке X на if/elif/else и типа галочка на math/case это как понимать? Я не знаю что у вас в видео, у меня вопрос сразу по поводу привью, можете пояснить зачем такое заблуждение или все жесть внятное объяснение?
А зачем спрашивать и не смотреть видео, если ответ прямо в видео и найдете
Когда мне будут говорить что "Ruby умер, он не удобный, им никто не пользуется, да что там вообще на нем пишут", я буду показывать твое видео и говорить, что Python потребовалось всего 12 лет, чтобы приблизиться хоть чуть-чуть к Ruby по удобству использования ))
Просто бомбитческий инструмент. Питон всё лучше и лучше
Буквально пару дней назад познакомился с этими операторами в JS.
Пока не уловил в чём их преимущества - но в целом рад что функционал Python растёт))...
Инструмент достаточно полезный, круто что добавили :))
Можно ли сделать исключение? То что будет происходить если не совпадёт ни одно условие
Если не совпадает ни одно условие, выполняется default условие, то есть "case _"
Спасибо
Топчик. Спасибо большое за видос, не знал о данной штуке. Теперь буду пихать в свой кривой код)😉
Рад что было полезно :)
Типо в пайтоне ток щас свитч кэйс появился ? Или это что то другое ?
Это не совсем switch, это очень мощный инструмент вроде match в языке Rust
@@zproger ясненько, ну наледсь теперь питонистам будет по проще )
спасибо за видео
Пожалуйста :)
@@zproger Жду еще видео такого типа!!!
Есть модули из коробки - argparse для анализа аргументов, enum для перечисляемых типов и флагов. Примеры кода гораздо проще реализуются с помощью их. А вся мощь mathing здесь не раскрыта, только синтаксический сахар.
Что именно не раскрыто? Это основные примеры из официальной документации
@@zproger Например распаковка словарей, экземпляров класса с явной проверкой типов. Ну может быть я излишне категорично сказал про всю мощь.
Распаковка словарей это да, я готовил этот материал, но когда уже смонтировал видео, вспомнил что забыл о них рассказать. Может быть уже на реальном проекте реализую этот момент :)
видос не смотрел, но слышал, что эта новая фича работает медленнее чем if/else
Оказалось что да, немного медленнее, но там разница практически не ощутима
Ожидал более глубокого обзора на этот функционал, а не повторение правил распаковки листа. Но все равно спасибо за видео
Так а чего тут не хватает для более глубокого обзора?
@@zproger Ну вы сказали что свич быстрее, но не показали. Не объяснили почему, как и т.д.
Спасибо. Теперь я понял значение слова г@внокодинг
Пожалуйста
и вот сиди думай, комплимент это или нет
@@lzrdblzzrd Мне без разницы комплимент это или нет :)
какую ос вы используете?
Zorin OS
@@zprogerлинух подобная?
Паттерн матичинг гораздо медленнее if-else так что есть как плюсы так и минусы
какой линукс?
Топчик
Благодарю :)
Спасибо за видео, можно название этой IDE?(или редактора кода)
Vs Code
А какой это линукс дистрибутив ?
Zorin OS
@@zproger А он относится к дистрибутивам линукса или, это совсем другая ОС
Да, это линукс
не совсем понятно откуда взялась переменная arg и hlp...
Будут ещё подобные ролики? И более детально развернуть case
Думаю если будут, то сделаю уже реальный проект с использованием match/case
@@zproger С нетерпением ждем!
200 in range(200,299)
:)
🤦♂️ создавать объект на 100 элементов в каждом цикле? 🤦♂️
@@predatel_rodini А че нет))
Что за ОС?
Zorin os
czcams.com/video/jIFeDDf69Uk/video.html
а почему не "restart" in commands ? И так далее, просто проверять каждый флаг на вхождение в список
Нам важно значение этих аргументов но нам не нужно записывать их в пельменную
Что за программатор?
Какой программатор? :D
Если вы про среду разработки, то это Vs Code
@@zproger спасибо.
200
Кстати да :)
👍
Благодарю :)
Ничего не понятно но интересно... Ток начал изучать python
Удачи в изучении :)
За инфу спасибо, за музыку -- нет (меня она утомляет).
Учту, спасибо.
Если не секрет, что именно утомляет в музыке?
Попробую это исправить
@@zproger спасибо, что откликнулись. сами мелодии кажутся "тяжелыми", иначе, отвлекают на себя внимание, сколько-то раз перематывал, тк не вникал в речь
Благодарю :)
9:45 тут вообще наверно проще массив создать именованный, и отдавать по ключу текст и все )) зачем городить свитч, понятно конечно что ради примера но все же
Да, всё исключительно для примера :))
@@zproger я больше для тех кто реально подумает что так надо делать, а так делать уж точно не надо
@@zproger пробовал как то что то писать на питоне, но не понял что делать то, на js допустим понятно, интерфейсы на react или просто с dom работа, на php тоже понятно, сервер и тд, а на питоне что ?)) хотел бы по юзать его но вопрос что на нем писать, для бэка как то странно, медленный больно или для простых задач пойдет ?
На нем что угодно можно писать, а под бэкенд и прочие сферы, где нужна скорость, есть хорошие фреймворки, которые работают достаточно быстро
В C++ это существовало с эпохи динозавров. Также как и оператор разыменовывания, который, вроде как, хотят в Пайтон 3.11 добавить (незнаю точно, слышал, но не читал, пишу в основном на плюсах)
Только в сях переключатель между целочисленными значениями. Оно и понятно, так как нормально в асм можно транслировать. А эти извращения с условиями в переключателе плохо читаемы и плохо транслируются. Зато стильно, модно, молодёжно.
Яб сказал что 1 в 1 с скалы стырили
Возможно, не писал на скале, посмотрю сегодня ради интереса как там всё устроено))
О нет... Эта конструкция выглядит так ужасно)
:0
да, в плюсах лучше
@@zproger :3
ZProger? Фанат Z?
Конечно нет, этому нику уже года 3
@@zproger а блин, извини, зря наехал
case status if status 200
ссссЫ, ввввЫ, ккккЫ.... Что с твоей дикцией, чувак?
Просто делаю акцент на этом, чтобы выделить важные моменты, дикция тут не причем.
Я не говорю сыы, выы, просто тяну эту букву вот и всё
@@zproger а по звукам, как будто так и произносишь) есть масса упражнений на дикцию, если звук сыпется - ищи хороший микрофон) но вот эти сЫ, вЫ очень сильно мешают слушать информацию. Я без зла
Дикцию прокачиваю, но не так быстро это делается =)
В любом случае спасибо за конструктивную критику
Все класно, кроме фашистской символики в имени канала : (
Это не фашисткая символика, этому нику 3 года уже.
@@zproger понял, принято. Лайк каналу
Логика 0сла, поздравляю. Все люди с буквой З в имени и фамилии теперь плохие? 😹
как настолько тупым можно быть, и это в рамках целой нации, ужс
Чет я немного выпал с выражения if player not in black_list, я конечно знал что Пайтон простой язык в плане синтаксиса но не на столько же )) в том же js я бы проверял это примерно так: !black_list.includes(player)
Тут всё делается попроще) В том же расте нужно вызывать функции для сравнения, как и в других языках, а в питоне достаточно просто написать not in
Как во время добавили, раньше приходилось извращаться:
def handle_text(message):
for x in blacklist:
if(x in message.text):
message.from_user.id == hate
Else:
Delete.mesege
Да, стало очень удобно :)
А зачем скобки в if? и какую логическую нагрузку несёт 4ая строка кода в этой функции?