Какой метод мне следует использовать, чтобы случайным образом получить 4 элемента из следующего списка.
Anonymous Quiz
54%
random.choice(samplelist, 4)
46%
random.sample(samplelist, 4)
Pattern matching. Конструкция match.
Начиная с версии 3.10 в языке Python появилась такая функциональность как pattern matching (сопоставление шаблонов). Pattern matching представляет применение конструкции match, которая позволяет сопоставить выражение с некоторым шаблоном. И если выражение соответствует шаблону, то выполняются определенные действия. В этом смысле конструкция match похожа на конструкцию if/else/elif, которая выполняет определенные действия в зависимости от некоторого условия. Однако функциональность match гораздо шире - она также позволяет извлечь данные из составных типов и применить действия к различным частям объектов.
Конструкция match имеет следующее формальное определение:
🐍 Укус питона // 💬 Чат // #теория #pattern_matching #конструкции #match
Начиная с версии 3.10 в языке Python появилась такая функциональность как pattern matching (сопоставление шаблонов). Pattern matching представляет применение конструкции match, которая позволяет сопоставить выражение с некоторым шаблоном. И если выражение соответствует шаблону, то выполняются определенные действия. В этом смысле конструкция match похожа на конструкцию if/else/elif, которая выполняет определенные действия в зависимости от некоторого условия. Однако функциональность match гораздо шире - она также позволяет извлечь данные из составных типов и применить действия к различным частям объектов.
Конструкция match имеет следующее формальное определение:
🐍 Укус питона // 💬 Чат // #теория #pattern_matching #конструкции #match
Что выведет этот код?
Anonymous Quiz
44%
{‘Yellow’, ”Black’, ‘Pink’, ‘Blue’}
45%
{‘Pink’, ‘Blue’}
11%
{‘Yellow’, ”Black’}
👩💻 Как работать с паттернами проектирования в Python?
Расскажет Станислав Ступников — руководитель разработки в VK.
Встречаемся на бесплатном практическом уроке от OTUS, где мы:
▫️займемся классификацией паттернов;
▫️покажем, насколько хорошо и ровно они транслируются в мир Python-разработки;
▫️ обсудим, как с ними работать.
📢 Занятие пройдёт 28 февраля в 20:00 мск и будет приурочено к старту курса «Python Developer. Professional». Доступна рассрочка на обучение!
⬇️ Пройдите короткий тест прямо сейчас, чтобы занять место на открытом уроке и получить запись: пройти тест
Расскажет Станислав Ступников — руководитель разработки в VK.
Встречаемся на бесплатном практическом уроке от OTUS, где мы:
▫️займемся классификацией паттернов;
▫️покажем, насколько хорошо и ровно они транслируются в мир Python-разработки;
▫️ обсудим, как с ними работать.
📢 Занятие пройдёт 28 февраля в 20:00 мск и будет приурочено к старту курса «Python Developer. Professional». Доступна рассрочка на обучение!
⬇️ Пройдите короткий тест прямо сейчас, чтобы занять место на открытом уроке и получить запись: пройти тест
Pattern matching. Конструкция match. Продолжение.
После ключевого слова match идет сравниваемое выражение. И затем после двоеточия на последующих строках располагаются выражения case. После каждого выражения case указывается шаблон, с которым сравнивается выражение из match. После шаблона через двоеточие указываются набор выполняемых действий блока case.
Конструкция match последовательно сравнивает выражение с шаблонами из блоков case. И если был найден шаблон из какого-нибудь блока case соответствует выражению из match, то выполняются инструкции из данного блока case.
В качестве паттернов/шаблонов, с которыми сравниваются выражения, могут применяться как данные примитивных типов, так и последовательности элементов и объектов классов.
Вначале рассмотрим ситуацию, когда в качестве шаблона выступают литералы примитивных типов. Например, в зависимости от языка выведем приветственное сообщение:
🐍 Укус питона // 💬 Чат // #теория #pattern_matching #конструкции #match
После ключевого слова match идет сравниваемое выражение. И затем после двоеточия на последующих строках располагаются выражения case. После каждого выражения case указывается шаблон, с которым сравнивается выражение из match. После шаблона через двоеточие указываются набор выполняемых действий блока case.
Конструкция match последовательно сравнивает выражение с шаблонами из блоков case. И если был найден шаблон из какого-нибудь блока case соответствует выражению из match, то выполняются инструкции из данного блока case.
В качестве паттернов/шаблонов, с которыми сравниваются выражения, могут применяться как данные примитивных типов, так и последовательности элементов и объектов классов.
Вначале рассмотрим ситуацию, когда в качестве шаблона выступают литералы примитивных типов. Например, в зависимости от языка выведем приветственное сообщение:
🐍 Укус питона // 💬 Чат // #теория #pattern_matching #конструкции #match
Pattern matching. Конструкция match. Продолжение.
Здесь функция print_hello принимает параметр language, через который передается выбранный язык. В самой функции конструкция match сравнивает значение переменной language. В блоках case определяются шаблоны - строки, с которыми сопоставляется переменная language.
Например при вызове print_hello("english") параметр language равен "english", поэтому конструкция match выберет следующий блок case:
🐍 Укус питона // 💬 Чат // #теория #pattern_matching #конструкции #match
Здесь функция print_hello принимает параметр language, через который передается выбранный язык. В самой функции конструкция match сравнивает значение переменной language. В блоках case определяются шаблоны - строки, с которыми сопоставляется переменная language.
Например при вызове print_hello("english") параметр language равен "english", поэтому конструкция match выберет следующий блок case:
🐍 Укус питона // 💬 Чат // #теория #pattern_matching #конструкции #match
Выберите правильный вариант, чтобы удалить “Orange” из набора.
Anonymous Quiz
45%
sampleSet.pop("Orange")
33%
sampleSet.discard("Orange")
22%
del sampleSet ["Orange"]
Pattern matching. Конструкция match. Продолжение.
Обратите внимание, что блоки case имеют отступы от начала конструкции match. А инструкции каждого блока case имеют отступы от начала данного блока case. Но если блок case имеет одну инстукцию, ее можно поместить на той же строке, что и оператор case:
Причем если выражение из match не соответствует ни одному из шаблонов case, то соответственно ни один из этих блоков case не выполняется.
🐍 Укус питона // 💬 Чат // #теория #pattern_matching #конструкции #match
Обратите внимание, что блоки case имеют отступы от начала конструкции match. А инструкции каждого блока case имеют отступы от начала данного блока case. Но если блок case имеет одну инстукцию, ее можно поместить на той же строке, что и оператор case:
Причем если выражение из match не соответствует ни одному из шаблонов case, то соответственно ни один из этих блоков case не выполняется.
🐍 Укус питона // 💬 Чат // #теория #pattern_matching #конструкции #match
Что выведет этот код?
Anonymous Quiz
50%
{‘Black’, ‘Yellow’}
50%
{‘Yellow’, ‘Orange’, ‘Black’, ‘Blue’, ‘Pink’}
Pattern matching. Конструкция match. Продолжение.
Если необходимо, чтобы при несовпадении значений (если ни один из шаблонов case не соответствует выражению match) выполнялись некоторые действия по умолчанию, то в этом случае применяется шаблон _ (прочерк):
Если ни один из шаблонов case не соответствует значению language, то будет выполняться блок, второй пример:
🐍 Укус питона // 💬 Чат // #теория #pattern_matching #конструкции #match
Если необходимо, чтобы при несовпадении значений (если ни один из шаблонов case не соответствует выражению match) выполнялись некоторые действия по умолчанию, то в этом случае применяется шаблон _ (прочерк):
Если ни один из шаблонов case не соответствует значению language, то будет выполняться блок, второй пример:
🐍 Укус питона // 💬 Чат // #теория #pattern_matching #конструкции #match
Pattern matching. Конструкция match. Продолжение.
Но также можно определить блок case, который позволяет сравнивать сразу с несколькими знечениями. В этом случае значения разделяются вертикальной чертой:
В данном случае шаблон case "american english" | "british english" | "english" соответствует сразу трем значениям.
🐍 Укус питона // 💬 Чат // #теория #pattern_matching #конструкции #match
Но также можно определить блок case, который позволяет сравнивать сразу с несколькими знечениями. В этом случае значения разделяются вертикальной чертой:
В данном случае шаблон case "american english" | "british english" | "english" соответствует сразу трем значениям.
🐍 Укус питона // 💬 Чат // #теория #pattern_matching #конструкции #match