🐍 Укус питона 🐍
前往频道在 Telegram
🐍 Канал о программировании на языке Python. Тематические уроки и лайфхаки. 👽 Админ - @tg_adminisrator 🔊 Купить рекламу: https://telega.in/c/byteofpython 👉 Чат: @abyteofpython 👉 Поделиться с друзьями: @byteofpython
显示更多2 334
订阅者
无数据24 小时
-117 天
-3730 天
帖子存档
2 334
Кортежи в pattern matching. Продолжение.
Второй шаблон соответствует любому двухэлементному кортежу, первый элемент которого равен строке "Tom":
Для второго элемента определяется переменная age. В итоге, если первый элемент кортежа равен строке "Tom", а второй не равен 37, то такой кортеж будет соответствовать второму шаблону. Причем второй элемент будет передаваться переменной age.
🐍 Укус питона // 💬 Чат // #теория #pattern_matching #кортежи
2 334
Кортежи в pattern matching.
В качестве шаблонов в pathern matching в Python могут выступать кортежи. Например:
В данном случае функция принимает параметр user, который, как предполагается, представляет кортеж из двух элементов. И конструкция match сравнивает этот кортеж с рядом шаблонов. Первый шаблон предполагает, что кортеж user точно соответствует набору значений, вторая маленькая часть кода:
То есть, если первый элемент кортежа равен "Tom", а второй - 37, то на консоль выводится строка "default user"
🐍 Укус питона // 💬 Чат // #теория #pattern_matching #кортежи
2 334
Pattern matching. Конструкция match. Продолжение.
Подобным образом можно сравнивать выражения с данными других типов. Например:
Здесь функция operation принимает два числа и код операции. Конструкция match сравнивает код операции с конкретными значениями и в зависимости от значения выполняет на числами определенную операцию. Например, если code равен 1, то выполняется выражение, второй пример:
это выражение case возвратит из функцию сумму чисел a и b.
Аналогично если code = 2, то возвращается разность, а если code = 3, то возвращается произведение чисел. Во всех остальных случаях возвращается 0.
🐍 Укус питона // 💬 Чат // #теория #pattern_matching #конструкции #match
2 334
2 334
Pattern matching. Конструкция match. Продолжение.
Но также можно определить блок case, который позволяет сравнивать сразу с несколькими знечениями. В этом случае значения разделяются вертикальной чертой:
В данном случае шаблон case "american english" | "british english" | "english" соответствует сразу трем значениям.
🐍 Укус питона // 💬 Чат // #теория #pattern_matching #конструкции #match
2 334
Pattern matching. Конструкция match. Продолжение.
Если необходимо, чтобы при несовпадении значений (если ни один из шаблонов case не соответствует выражению match) выполнялись некоторые действия по умолчанию, то в этом случае применяется шаблон _ (прочерк):
Если ни один из шаблонов case не соответствует значению language, то будет выполняться блок, второй пример:
🐍 Укус питона // 💬 Чат // #теория #pattern_matching #конструкции #match
