Python 3.10 - Лучший новый инструмент Pattern Matching и его возможности

Sdílet
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

Komentáře • 193

  • @zproger
    @zproger  Před 2 lety +54

    Как вам инструмент? 🙂

  • @quadroninja2708
    @quadroninja2708 Před 2 lety +51

    Когда я начал изучать питон, мне не хватало switch, как в C++. Хорошая вещь!

    • @zproger
      @zproger  Před 2 lety

      Согласен :)

    • @Sizt
      @Sizt Před 2 lety +6

      Когда-то давно в школе меня учили, что использовать switch..case - последнее дело, наравне с goto.
      Не знаю, почему автор видео сказал, что match..case быстрее if..else, мои тесты показывают, что медленнее, иногда в разы.
      При этом, в зависимости от ситуации, match..case может быть как более громоздким, чем if..else, так и менее. Имхо, его можно использовать, когда есть много однотипных вариантов ветвления. 9:50 - отличный пример. А вот то, что на 9:14 выглядит как то, что не надо делать.

    • @user-pg8ry1tm3t
      @user-pg8ry1tm3t Před 6 měsíci

      @@Siztкогда-то давно меня научили что goto использовать просто прекрасно… откройте ядро линуха🥴

  • @linux1598
    @linux1598 Před rokem +3

    Надо больше видео про 3.10, там много интересного :)

  • @RuslanKhamidoullin
    @RuslanKhamidoullin Před rokem +1

    Мелкомягкие уже больше 10 лет назад рекомендовали везде где есть возможность использовать case вместо if, для улучшения структурирования кода и ускорения общей работы кода. Спасибо, Дружище!

  • @nickolayfetlistov4416
    @nickolayfetlistov4416 Před 2 lety +2

    Просто суперское видео! Автор красавчик! Спасибо!

  • @nakamasama
    @nakamasama Před 2 lety +2

    Дождалииись!!!

  • @zamer0k534
    @zamer0k534 Před 2 lety +10

    Видос просто обалденный, все кратко и по делу, информация преподнесена максимально понятно, сам учу питон самостоятельно и в колледже, мне нравится этот метод, выглядит очень красиво, читается легко, кайфую

    • @zproger
      @zproger  Před 2 lety

      Кайф =)

    • @user-xm5ey7tw2s
      @user-xm5ey7tw2s Před rokem

      Сам поступаю в универ. Желаю удачи вам в колледже!

  • @mr.gamerenot2457
    @mr.gamerenot2457 Před rokem +12

    Сделай пожалуйста более подробный видос где на практике применять if/else, а где match/case.

    • @zproger
      @zproger  Před rokem

      Как-то дойдут до этого руки, спасибо

  • @andrewchernomorov2907

    Коммент для продвижения. Инструмент просто огонь!

  • @user-dq5yx3cq3f
    @user-dq5yx3cq3f Před rokem

    Пушка. Спасибо

  • @datochikhla8572
    @datochikhla8572 Před rokem

    Спасибо что рассказал это очень удобно

  • @justchary
    @justchary Před rokem

    Хорошее видео, спасибо

  • @MixiPri
    @MixiPri Před 10 měsíci

    Просто охеренная вещь! Спасибо огромное!!!

  • @user-hp7pc3lv3v
    @user-hp7pc3lv3v Před 2 lety

    Супер, спасибо

    • @zproger
      @zproger  Před 2 lety

      Рад что понравилось

  • @SuperPracion
    @SuperPracion Před rokem

    Ультра круто 👍

  • @andrewkr9173
    @andrewkr9173 Před 2 lety

    Cool!

  • @MadMike93
    @MadMike93 Před 2 lety +1

    у нас в конторе давно 3.10))) буквально вчера в микросервисе Pattern Matching использовал в одном месте, гденудно было отловить тип бизнеспроцесса в JSON от другого микросервиса)) читается быстрее и удобнее чем if/else)))

    • @zproger
      @zproger  Před 2 lety

      Это круто что уже начали применять инструмент :)

  • @RemboRaser
    @RemboRaser Před rokem

    Хочу пересматривать это снова и снова. Чтобы понять как можно такое использовать на максимум. Вообще красиво выглядит.

  • @user-hw1tf7kf9f
    @user-hw1tf7kf9f Před 2 lety +17

    Ничего себе, не думал что match case имеет такой широкий функционал.

    • @zproger
      @zproger  Před 2 lety +2

      Ага, достаточно мощная штука)

  • @TheNikita
    @TheNikita Před 2 lety +13

    Достаточно удобно, но я уже привык к старому доброму if else 😁

    • @zproger
      @zproger  Před 2 lety +1

      Это да, главное знать где лучше применить if а где match

  • @user-fc5fo3rq1v
    @user-fc5fo3rq1v Před rokem

    круто

  • @Seriousbear
    @Seriousbear Před 2 lety +5

    Питонисты изобрели свитчкейс)

    • @zproger
      @zproger  Před 2 lety

      Даа))

    • @Slavasil
      @Slavasil Před 2 lety

      ну это круче просто свитч кейса

  • @roma8263
    @roma8263 Před 2 lety +1

    Благодарю тебя. Изучу этот прикол

    • @zproger
      @zproger  Před 2 lety

      Пожалуйста :)

  • @arthurgrigorev6535
    @arthurgrigorev6535 Před 2 lety +1

    щикаррно

  • @alexseydugin8109
    @alexseydugin8109 Před rokem

    Когда дошли до скобочек, сразу пошли какие то флешбеки с регексов

  • @return_1101
    @return_1101 Před 2 lety +1

    Сильный урок. Спасибо!!!

    • @zproger
      @zproger  Před 2 lety

      Пожалуйста :)

  • @bobikbobanovich9997
    @bobikbobanovich9997 Před rokem +1

    имба

  • @irwe3514
    @irwe3514 Před 2 lety +1

    Будем ждать следующих роликов💥

  • @fil-os-of
    @fil-os-of Před 9 měsíci

    Классный инструмент, прям как в С++

  • @Dreamer_78
    @Dreamer_78 Před 2 lety +1

    Спасибо! Очень полезный tool, Успехов вашему каналу с меня палец вверх)))

    • @zproger
      @zproger  Před 2 lety

      Благодарю за поддержку :))

    • @Slavasil
      @Slavasil Před 2 lety +1

      о вы из англии

  • @nakidai
    @nakidai Před 2 lety +1

    Ввааауу как круто мне на виндовс 7 тооо, спасибоо, вовремя как всегда простоо

  • @mkalalaka
    @mkalalaka Před rokem +3

    вовремя я начал Питон учить, он как раз становится похож на нормальный язык. кейсы даже в SQL есть, причем давно, наконец то и Питон обзавелся

  • @4rtcrt321
    @4rtcrt321 Před 2 lety

    Интересно как же оно быстрее чем if/else, если конструкция match case транслируется в байткод в те же операторы что и при трансляции if / else ????

  • @paradoxshi1328
    @paradoxshi1328 Před 2 lety +1

    топ видео,что за компилятор вы используете на видео ?

    • @zproger
      @zproger  Před 2 lety +1

      В питоне нет компилятора :)
      Это интерпретатор версии 3.10

    • @paradoxshi1328
      @paradoxshi1328 Před 2 lety

      @@zproger понял,спасибо

  • @ahil7800
    @ahil7800 Před 9 měsíci

    В другом ролике смотрел проверку скорости if и match case. Так вот if был быстрее в три раза, match case использовали для более читаемого кода.

  • @xesax
    @xesax Před rokem +1

    почему у меня не работает match/case ? пишет нет таких переменных, версия 3,10,5

  • @glebkachkaev6014
    @glebkachkaev6014 Před 2 lety +1

    инструмент топ

  • @user-ff1sd6wl1h
    @user-ff1sd6wl1h Před 2 lety +1

    Жду обзор на python 3.11)

    • @zproger
      @zproger  Před 2 lety +1

      Python 3.11 это вообще бомба :))
      Но сделаю уже ближе к релизу

    • @deroteron
      @deroteron Před 2 lety

      @@zproger будем ждать)

  • @secretsoftware8535
    @secretsoftware8535 Před 2 lety +2

    Кстати, у телеграмма обновление вышло, добавили возможность создавать веб интерфейсы в ботах

    • @zproger
      @zproger  Před 2 lety

      Спасибо, может быть покажу это в новом видео, если оно окажется интересным :)

    • @secretsoftware8535
      @secretsoftware8535 Před 2 lety

      @@zproger конечно интересно! Будет круто, если вы раньше всех про это снимете)

  • @SiarheiKhomich
    @SiarheiKhomich Před 2 lety +1

    отличный инструмент

  • @shimoda47
    @shimoda47 Před rokem +1

    До этого видео у меня были ложные воспоминания что в питоне всегда был свитч, но я им не пользовался из за лени) А оно вон как оказывается) XD

  • @rs8188
    @rs8188 Před 2 lety +1

    🔥🔥

    • @zproger
      @zproger  Před 2 lety

      Спасибо :)

    • @rs8188
      @rs8188 Před 2 lety

      Отличный контент делаешь БРО!👍 Я уже своим студентам занёс) так им оч зашёл свич)

    • @zproger
      @zproger  Před 2 lety

      Отлично, рад что всем понравилось =)

  • @trezzh4
    @trezzh4 Před 2 lety +2

    Странно, что так поздно добавили. В Visual Baisic такая конструкция была лет двадцать, если не больше, а это вроде далеко не самый передовой ЯП.

    • @zproger
      @zproger  Před 2 lety

      Это да, странно

    • @mkalalaka
      @mkalalaka Před rokem

      в ВБ эта конструкция куда дольше существует. в ВБ 4 она вроде как уже была. а он был запущен задолго до 2000 года.

  • @TheEmeric
    @TheEmeric Před rokem +1

    На привью значке X на if/elif/else и типа галочка на math/case это как понимать? Я не знаю что у вас в видео, у меня вопрос сразу по поводу привью, можете пояснить зачем такое заблуждение или все жесть внятное объяснение?

    • @zproger
      @zproger  Před rokem

      А зачем спрашивать и не смотреть видео, если ответ прямо в видео и найдете

  • @user-vito-kuk
    @user-vito-kuk Před 2 lety +1

    Когда мне будут говорить что "Ruby умер, он не удобный, им никто не пользуется, да что там вообще на нем пишут", я буду показывать твое видео и говорить, что Python потребовалось всего 12 лет, чтобы приблизиться хоть чуть-чуть к Ruby по удобству использования ))

  • @user-ck3bl1hy2c
    @user-ck3bl1hy2c Před rokem

    Просто бомбитческий инструмент. Питон всё лучше и лучше

  • @yabanciyim
    @yabanciyim Před 2 lety +1

    Буквально пару дней назад познакомился с этими операторами в JS.
    Пока не уловил в чём их преимущества - но в целом рад что функционал Python растёт))...

    • @zproger
      @zproger  Před 2 lety +1

      Инструмент достаточно полезный, круто что добавили :))

  • @dowlso
    @dowlso Před 2 lety +1

    Можно ли сделать исключение? То что будет происходить если не совпадёт ни одно условие

    • @zproger
      @zproger  Před 2 lety

      Если не совпадает ни одно условие, выполняется default условие, то есть "case _"

    • @dowlso
      @dowlso Před 2 lety

      Спасибо

  • @grinkelshrom8548
    @grinkelshrom8548 Před 2 lety +1

    Топчик. Спасибо большое за видос, не знал о данной штуке. Теперь буду пихать в свой кривой код)😉

    • @zproger
      @zproger  Před 2 lety +1

      Рад что было полезно :)

  • @awenn2015
    @awenn2015 Před 2 lety +1

    Типо в пайтоне ток щас свитч кэйс появился ? Или это что то другое ?

    • @zproger
      @zproger  Před 2 lety

      Это не совсем switch, это очень мощный инструмент вроде match в языке Rust

    • @awenn2015
      @awenn2015 Před 2 lety

      @@zproger ясненько, ну наледсь теперь питонистам будет по проще )

  • @user-oq3mq3jj1k
    @user-oq3mq3jj1k Před 2 lety +1

    спасибо за видео

    • @zproger
      @zproger  Před 2 lety

      Пожалуйста :)

    • @user-oq3mq3jj1k
      @user-oq3mq3jj1k Před 2 lety

      @@zproger Жду еще видео такого типа!!!

  • @Rejgan318
    @Rejgan318 Před 2 lety +1

    Есть модули из коробки - argparse для анализа аргументов, enum для перечисляемых типов и флагов. Примеры кода гораздо проще реализуются с помощью их. А вся мощь mathing здесь не раскрыта, только синтаксический сахар.

    • @zproger
      @zproger  Před 2 lety

      Что именно не раскрыто? Это основные примеры из официальной документации

    • @Rejgan318
      @Rejgan318 Před 2 lety +1

      @@zproger Например распаковка словарей, экземпляров класса с явной проверкой типов. Ну может быть я излишне категорично сказал про всю мощь.

    • @zproger
      @zproger  Před 2 lety

      Распаковка словарей это да, я готовил этот материал, но когда уже смонтировал видео, вспомнил что забыл о них рассказать. Может быть уже на реальном проекте реализую этот момент :)

  • @_test_test
    @_test_test Před 2 lety +1

    видос не смотрел, но слышал, что эта новая фича работает медленнее чем if/else

    • @zproger
      @zproger  Před 2 lety +1

      Оказалось что да, немного медленнее, но там разница практически не ощутима

  • @non5309
    @non5309 Před 2 lety +2

    Ожидал более глубокого обзора на этот функционал, а не повторение правил распаковки листа. Но все равно спасибо за видео

    • @zproger
      @zproger  Před 2 lety

      Так а чего тут не хватает для более глубокого обзора?

    • @eugenyveles440
      @eugenyveles440 Před 2 lety +4

      @@zproger Ну вы сказали что свич быстрее, но не показали. Не объяснили почему, как и т.д.

  • @predatel_rodini
    @predatel_rodini Před 2 lety +2

    Спасибо. Теперь я понял значение слова г@внокодинг

    • @zproger
      @zproger  Před 2 lety

      Пожалуйста

    • @lzrdblzzrd
      @lzrdblzzrd Před 2 lety +1

      и вот сиди думай, комплимент это или нет

    • @zproger
      @zproger  Před 2 lety

      @@lzrdblzzrd Мне без разницы комплимент это или нет :)

  • @youngtitanium6418
    @youngtitanium6418 Před 2 lety +1

    какую ос вы используете?

  • @alexandergrigorev4518
    @alexandergrigorev4518 Před 2 lety +3

    Паттерн матичинг гораздо медленнее if-else так что есть как плюсы так и минусы

  • @meezeefy9524
    @meezeefy9524 Před rokem

    какой линукс?

  • @user-ke6fo3qm3k
    @user-ke6fo3qm3k Před 2 lety +1

    Топчик

    • @zproger
      @zproger  Před 2 lety

      Благодарю :)

  • @rustammm11
    @rustammm11 Před 2 lety +1

    Спасибо за видео, можно название этой IDE?(или редактора кода)

  • @user-rn7jb1bq7r
    @user-rn7jb1bq7r Před 2 lety +3

    А какой это линукс дистрибутив ?

    • @zproger
      @zproger  Před 2 lety +2

      Zorin OS

    • @user-rn7jb1bq7r
      @user-rn7jb1bq7r Před 2 lety +3

      @@zproger А он относится к дистрибутивам линукса или, это совсем другая ОС

    • @zproger
      @zproger  Před 2 lety +1

      Да, это линукс

  • @oleksandrshalbanov2685

    не совсем понятно откуда взялась переменная arg и hlp...

  • @irwe3514
    @irwe3514 Před 2 lety +1

    Будут ещё подобные ролики? И более детально развернуть case

    • @zproger
      @zproger  Před 2 lety

      Думаю если будут, то сделаю уже реальный проект с использованием match/case

    • @gas1461
      @gas1461 Před 2 lety

      @@zproger С нетерпением ждем!

  • @bimbimbambam0x0
    @bimbimbambam0x0 Před 2 lety +2

    200 in range(200,299)

    • @zproger
      @zproger  Před 2 lety

      :)

    • @predatel_rodini
      @predatel_rodini Před 2 lety

      🤦‍♂️ создавать объект на 100 элементов в каждом цикле? 🤦‍♂️

    • @bimbimbambam0x0
      @bimbimbambam0x0 Před 2 lety

      @@predatel_rodini А че нет))

  • @erjan1339
    @erjan1339 Před 2 lety +1

    Что за ОС?

  • @mike7105mike
    @mike7105mike Před 2 lety

    czcams.com/video/jIFeDDf69Uk/video.html
    а почему не "restart" in commands ? И так далее, просто проверять каждый флаг на вхождение в список

  • @dailyvideo1593
    @dailyvideo1593 Před rokem

    Нам важно значение этих аргументов но нам не нужно записывать их в пельменную

  • @user-gr3zg4qq7u
    @user-gr3zg4qq7u Před 2 lety +1

    Что за программатор?

    • @zproger
      @zproger  Před 2 lety

      Какой программатор? :D
      Если вы про среду разработки, то это Vs Code

    • @user-gr3zg4qq7u
      @user-gr3zg4qq7u Před 2 lety

      @@zproger спасибо.

  • @jackmoral9127
    @jackmoral9127 Před 2 lety +2

    200

  • @user-re1ri9jp3e
    @user-re1ri9jp3e Před 2 lety +1

    👍

    • @zproger
      @zproger  Před 2 lety

      Благодарю :)

  • @Musicchannel-wp2je
    @Musicchannel-wp2je Před 2 lety +1

    Ничего не понятно но интересно... Ток начал изучать python

    • @zproger
      @zproger  Před 2 lety

      Удачи в изучении :)

  • @nekomantia
    @nekomantia Před 2 lety +1

    За инфу спасибо, за музыку -- нет (меня она утомляет).

    • @zproger
      @zproger  Před 2 lety +1

      Учту, спасибо.
      Если не секрет, что именно утомляет в музыке?
      Попробую это исправить

    • @nekomantia
      @nekomantia Před 2 lety +1

      @@zproger спасибо, что откликнулись. сами мелодии кажутся "тяжелыми", иначе, отвлекают на себя внимание, сколько-то раз перематывал, тк не вникал в речь

    • @zproger
      @zproger  Před 2 lety +1

      Благодарю :)

  • @awenn2015
    @awenn2015 Před 2 lety +2

    9:45 тут вообще наверно проще массив создать именованный, и отдавать по ключу текст и все )) зачем городить свитч, понятно конечно что ради примера но все же

    • @zproger
      @zproger  Před 2 lety

      Да, всё исключительно для примера :))

    • @awenn2015
      @awenn2015 Před 2 lety

      @@zproger я больше для тех кто реально подумает что так надо делать, а так делать уж точно не надо

    • @awenn2015
      @awenn2015 Před 2 lety +1

      @@zproger пробовал как то что то писать на питоне, но не понял что делать то, на js допустим понятно, интерфейсы на react или просто с dom работа, на php тоже понятно, сервер и тд, а на питоне что ?)) хотел бы по юзать его но вопрос что на нем писать, для бэка как то странно, медленный больно или для простых задач пойдет ?

    • @zproger
      @zproger  Před 2 lety

      На нем что угодно можно писать, а под бэкенд и прочие сферы, где нужна скорость, есть хорошие фреймворки, которые работают достаточно быстро

  • @robertobokarev439
    @robertobokarev439 Před 2 lety

    В C++ это существовало с эпохи динозавров. Также как и оператор разыменовывания, который, вроде как, хотят в Пайтон 3.11 добавить (незнаю точно, слышал, но не читал, пишу в основном на плюсах)

    • @edgarfedosov1440
      @edgarfedosov1440 Před rokem

      Только в сях переключатель между целочисленными значениями. Оно и понятно, так как нормально в асм можно транслировать. А эти извращения с условиями в переключателе плохо читаемы и плохо транслируются. Зато стильно, модно, молодёжно.

  • @serufim
    @serufim Před 2 lety +1

    Яб сказал что 1 в 1 с скалы стырили

    • @zproger
      @zproger  Před 2 lety

      Возможно, не писал на скале, посмотрю сегодня ради интереса как там всё устроено))

  • @kadencode5347
    @kadencode5347 Před 2 lety +3

    О нет... Эта конструкция выглядит так ужасно)

  • @madmath3304
    @madmath3304 Před 2 lety +1

    ZProger? Фанат Z?

    • @zproger
      @zproger  Před 2 lety

      Конечно нет, этому нику уже года 3

    • @madmath3304
      @madmath3304 Před 2 lety

      @@zproger а блин, извини, зря наехал

  • @vlad_covers
    @vlad_covers Před rokem

    case status if status 200

  • @scanvinlav
    @scanvinlav Před 2 lety +3

    ссссЫ, ввввЫ, ккккЫ.... Что с твоей дикцией, чувак?

    • @zproger
      @zproger  Před 2 lety

      Просто делаю акцент на этом, чтобы выделить важные моменты, дикция тут не причем.
      Я не говорю сыы, выы, просто тяну эту букву вот и всё

    • @scanvinlav
      @scanvinlav Před 2 lety

      @@zproger а по звукам, как будто так и произносишь) есть масса упражнений на дикцию, если звук сыпется - ищи хороший микрофон) но вот эти сЫ, вЫ очень сильно мешают слушать информацию. Я без зла

    • @zproger
      @zproger  Před 2 lety

      Дикцию прокачиваю, но не так быстро это делается =)
      В любом случае спасибо за конструктивную критику

  • @loktarogar6017
    @loktarogar6017 Před 2 lety +1

    Все класно, кроме фашистской символики в имени канала : (

    • @zproger
      @zproger  Před 2 lety +1

      Это не фашисткая символика, этому нику 3 года уже.

    • @loktarogar6017
      @loktarogar6017 Před 2 lety

      @@zproger понял, принято. Лайк каналу

    • @0range2un
      @0range2un Před 2 lety

      Логика 0сла, поздравляю. Все люди с буквой З в имени и фамилии теперь плохие? 😹
      как настолько тупым можно быть, и это в рамках целой нации, ужс

  • @awenn2015
    @awenn2015 Před 2 lety +1

    Чет я немного выпал с выражения if player not in black_list, я конечно знал что Пайтон простой язык в плане синтаксиса но не на столько же )) в том же js я бы проверял это примерно так: !black_list.includes(player)

    • @zproger
      @zproger  Před 2 lety

      Тут всё делается попроще) В том же расте нужно вызывать функции для сравнения, как и в других языках, а в питоне достаточно просто написать not in

  • @irwe3514
    @irwe3514 Před 2 lety +1

    Как во время добавили, раньше приходилось извращаться:
    def handle_text(message):
    for x in blacklist:
    if(x in message.text):
    message.from_user.id == hate
    Else:
    Delete.mesege

    • @zproger
      @zproger  Před 2 lety

      Да, стало очень удобно :)

    • @basterman13
      @basterman13 Před 2 lety +1

      А зачем скобки в if? и какую логическую нагрузку несёт 4ая строка кода в этой функции?