Pattern matching. Конструкция match. Продолжение.
Подобным образом можно сравнивать выражения с данными других типов. Например:
Здесь функция operation принимает два числа и код операции. Конструкция match сравнивает код операции с конкретными значениями и в зависимости от значения выполняет на числами определенную операцию. Например, если code равен 1, то выполняется выражение, второй пример:
это выражение case возвратит из функцию сумму чисел a и b.
Аналогично если code = 2, то возвращается разность, а если code = 3, то возвращается произведение чисел. Во всех остальных случаях возвращается 0.
🐍 Укус питона // 💬 Чат // #теория #pattern_matching #конструкции #match
Подобным образом можно сравнивать выражения с данными других типов. Например:
Здесь функция operation принимает два числа и код операции. Конструкция match сравнивает код операции с конкретными значениями и в зависимости от значения выполняет на числами определенную операцию. Например, если code равен 1, то выполняется выражение, второй пример:
это выражение case возвратит из функцию сумму чисел a и b.
Аналогично если code = 2, то возвращается разность, а если code = 3, то возвращается произведение чисел. Во всех остальных случаях возвращается 0.
🐍 Укус питона // 💬 Чат // #теория #pattern_matching #конструкции #match
Что выведет этот код?
Anonymous Quiz
29%
{‘Blue’, ‘Orange’, ‘Yellow’, ‘Orange’, ‘Black’}
71%
{‘Blue’, ‘Orange’, ‘Yellow’, ‘Black’}
Кортежи в pattern matching.
В качестве шаблонов в pathern matching в Python могут выступать кортежи. Например:
В данном случае функция принимает параметр user, который, как предполагается, представляет кортеж из двух элементов. И конструкция match сравнивает этот кортеж с рядом шаблонов. Первый шаблон предполагает, что кортеж user точно соответствует набору значений, вторая маленькая часть кода:
То есть, если первый элемент кортежа равен "Tom", а второй - 37, то на консоль выводится строка "default user"
🐍 Укус питона // 💬 Чат // #теория #pattern_matching #кортежи
В качестве шаблонов в pathern matching в Python могут выступать кортежи. Например:
В данном случае функция принимает параметр user, который, как предполагается, представляет кортеж из двух элементов. И конструкция match сравнивает этот кортеж с рядом шаблонов. Первый шаблон предполагает, что кортеж user точно соответствует набору значений, вторая маленькая часть кода:
То есть, если первый элемент кортежа равен "Tom", а второй - 37, то на консоль выводится строка "default user"
🐍 Укус питона // 💬 Чат // #теория #pattern_matching #кортежи
Что выведет этот код?
Anonymous Quiz
81%
40 [20, 30, 40]
19%
IndexError: индекс списка выходит за пределы диапазона
Кортежи в pattern matching. Продолжение.
Второй шаблон соответствует любому двухэлементному кортежу, первый элемент которого равен строке "Tom":
Для второго элемента определяется переменная age. В итоге, если первый элемент кортежа равен строке "Tom", а второй не равен 37, то такой кортеж будет соответствовать второму шаблону. Причем второй элемент будет передаваться переменной age.
🐍 Укус питона // 💬 Чат // #теория #pattern_matching #кортежи
Второй шаблон соответствует любому двухэлементному кортежу, первый элемент которого равен строке "Tom":
Для второго элемента определяется переменная age. В итоге, если первый элемент кортежа равен строке "Tom", а второй не равен 37, то такой кортеж будет соответствовать второму шаблону. Причем второй элемент будет передаваться переменной age.
🐍 Укус питона // 💬 Чат // #теория #pattern_matching #кортежи
Кортежи в pattern matching. Продолжение.
Третий шаблон во многом аналогичен, только теперь строго определен второй элемент кортежа - он должен быть равен 22, а первый попадает в переменную name:
Если двухэлементный кортеж не соответствует первому, второму и третьему шаблонам, то он будет соответствовать четвертому шаблону, в которому нам не важные конкретные значения - для них определены переменные name и age:
🐍 Укус питона // 💬 Чат // #теория #pattern_matching #кортежи
Третий шаблон во многом аналогичен, только теперь строго определен второй элемент кортежа - он должен быть равен 22, а первый попадает в переменную name:
Если двухэлементный кортеж не соответствует первому, второму и третьему шаблонам, то он будет соответствовать четвертому шаблону, в которому нам не важные конкретные значения - для них определены переменные name и age:
🐍 Укус питона // 💬 Чат // #теория #pattern_matching #кортежи
Альтернативные значения.
Если необходимо, чтобы элемент кортежа соответствовал набору значений, то эти значения можно перечислить через вертикальную черту:
В данном случае первый шаблон соответствует двухэлементному кортежу, где первый элемент равен или "Tom", или "Tomas", или "Tommy".
🐍 Укус питона // 💬 Чат // #теория #pattern_matching #кортежи
Если необходимо, чтобы элемент кортежа соответствовал набору значений, то эти значения можно перечислить через вертикальную черту:
В данном случае первый шаблон соответствует двухэлементному кортежу, где первый элемент равен или "Tom", или "Tomas", или "Tommy".
🐍 Укус питона // 💬 Чат // #теория #pattern_matching #кортежи
Для всех, кто устал сёрчить Хабр, рыться в куче непроверенной информации появился канал, который ведет ChatGPT: ищет новости, связанные с IT и публикует их в сжатом виде.
Please open Telegram to view this post
VIEW IN TELEGRAM
Альтернативные значения. Продолжение.
Также можно задать альтернативные значения для отдельных элементов, но и альтернативные кортежи:
В данном случае первый шаблон будет соответствовать двум кортежам: ("Tom", 37) и ("Sam", 22).
🐍 Укус питона // 💬 Чат // #теория #pattern_matching #кортежи
Также можно задать альтернативные значения для отдельных элементов, но и альтернативные кортежи:
В данном случае первый шаблон будет соответствовать двум кортежам: ("Tom", 37) и ("Sam", 22).
🐍 Укус питона // 💬 Чат // #теория #pattern_matching #кортежи
Вам нравится читать контент на этом канале?
Возможно, вы задумывались о том, чтобы купить на нем интеграцию?
Следуйте 3 простым шагам, чтобы сделать это:
1) Регистрируйтесь по ссылке: https://telega.in/c/byteofpython
2) Пополняйтесь удобным способом
3) Размещайте публикацию
Если тематика вашего поста подойдет нашему каналу, мы с удовольствием опубликуем его.
Возможно, вы задумывались о том, чтобы купить на нем интеграцию?
Следуйте 3 простым шагам, чтобы сделать это:
1) Регистрируйтесь по ссылке: https://telega.in/c/byteofpython
2) Пополняйтесь удобным способом
3) Размещайте публикацию
Если тематика вашего поста подойдет нашему каналу, мы с удовольствием опубликуем его.