Что выведет этот код?
Anonymous Quiz
30%
[[[2, 3, 9]], [[2, 3, 9]], [[2, 3, 9]]]
42%
[[2, 3, 9], [2, 3, 9], [2, 3, 9]]
6%
[[[2, 3, 9]], [[2, 3, 9]]]
22%
Нет правильного ответа.
Обращение к символам строки
И мы можем обратиться к отдельным символам строки по индексу в квадратных скобках, смотрим пример:
Индексация начинается с нуля, поэтому первый символ строки будет иметь индекс 0. А если мы попытаемся обратиться к индексу, которого нет в строке, то мы получим исключение IndexError. Например, в случае выше длина строки 11 символов, поэтому ее символы будут иметь индексы от 0 до 10.
🐍 Укус питона // 💬 Чат // #теория #данные #переменные
И мы можем обратиться к отдельным символам строки по индексу в квадратных скобках, смотрим пример:
Индексация начинается с нуля, поэтому первый символ строки будет иметь индекс 0. А если мы попытаемся обратиться к индексу, которого нет в строке, то мы получим исключение IndexError. Например, в случае выше длина строки 11 символов, поэтому ее символы будут иметь индексы от 0 до 10.
🐍 Укус питона // 💬 Чат // #теория #данные #переменные
Обращение к символам строки. Продолжение.
Чтобы получить доступ к символам, начиная с конца строки, можно использовать отрицательные индексы. Так, индекс -1 будет представлять последний символ, а -2 - предпоследний символ и так далее, первая часть кода:
При работе с символами следует учитывать, что строка - это неизменяемый (immutable) тип, поэтому если мы попробуем изменить какой-то отдельный символ строки, то мы получим ошибку, как в следующем случае, вторая часть кода:
Мы можем только полностью переустановить значение строки, присвоив ей другое значение.
🐍 Укус питона // 💬 Чат // #теория #данные #переменные
Чтобы получить доступ к символам, начиная с конца строки, можно использовать отрицательные индексы. Так, индекс -1 будет представлять последний символ, а -2 - предпоследний символ и так далее, первая часть кода:
При работе с символами следует учитывать, что строка - это неизменяемый (immutable) тип, поэтому если мы попробуем изменить какой-то отдельный символ строки, то мы получим ошибку, как в следующем случае, вторая часть кода:
Мы можем только полностью переустановить значение строки, присвоив ей другое значение.
🐍 Укус питона // 💬 Чат // #теория #данные #переменные
Массивы в pattern matching.
В качестве шаблонов также могут выступать массивы. Подобным шаблоны также могут содержать либо конкретные значения, либо переменные, которые передаются элементы массивов, либо символ прочерка _, если элемент массива не важен.
В данном случае функция print_people принимает массив, который, как предполагается, состоит из трех элементов, рассмотрим их в следующей части.
🐍 Укус питона // 💬 Чат // #теория #pattern_matching #массивы
В качестве шаблонов также могут выступать массивы. Подобным шаблоны также могут содержать либо конкретные значения, либо переменные, которые передаются элементы массивов, либо символ прочерка _, если элемент массива не важен.
В данном случае функция print_people принимает массив, который, как предполагается, состоит из трех элементов, рассмотрим их в следующей части.
🐍 Укус питона // 💬 Чат // #теория #pattern_matching #массивы
Массивы в pattern matching. Продолжение.
Первый шаблон предполагает, что элементы массива имеют определенные значения, смотрим первую часть примера:
В данном случае первый элемент массива должен представлять строку "Tom", второй - строку "Sam" и третий - строку "Bob".
Второй шаблон предполагает, что первый элемент массива должен быть равне строке "Tom", остальные два элемента могут иметь произвольные значения, вторая часть примера:
При этом значение второго элемента передается в переменную second, а значение третьего элемента не важно, поэтому вместо него применяется прочерк.
Третий шаблон соответствует любому массиву из трех элементов. При этом его элементы передаются в переменные first, second и third, третья часть кода:
В данном случае для соответствия любому из шаблонов массив должен был иметь три элемента. Но также можно определять шаблоны для массивов разной длины, последняя часть примера:
🐍 Укус питона // 💬 Чат // #теория #pattern_matching #массивы
Первый шаблон предполагает, что элементы массива имеют определенные значения, смотрим первую часть примера:
В данном случае первый элемент массива должен представлять строку "Tom", второй - строку "Sam" и третий - строку "Bob".
Второй шаблон предполагает, что первый элемент массива должен быть равне строке "Tom", остальные два элемента могут иметь произвольные значения, вторая часть примера:
При этом значение второго элемента передается в переменную second, а значение третьего элемента не важно, поэтому вместо него применяется прочерк.
Третий шаблон соответствует любому массиву из трех элементов. При этом его элементы передаются в переменные first, second и third, третья часть кода:
В данном случае для соответствия любому из шаблонов массив должен был иметь три элемента. Но также можно определять шаблоны для массивов разной длины, последняя часть примера:
🐍 Укус питона // 💬 Чат // #теория #pattern_matching #массивы
Массивы неопределенной длины
Если необходимо сравнивать выражение с массивом неопределенной длины, то можно определить значения/переменные только для обязательных элементов массива, а на необязательные ссылаться с помощью символа * (звездочки), смотрим код:
В примере применяется параметр *other, который соответствует всем остальным элементам. То есть шаблон [first, *other] соответствует любому массиву, который имеет как минимум один элемент, и этот элемент будет помещаться в параметр first. Все остальные элементы помещаются в параметр other, который представляет массив значений.
Если нам параметр с символом * (other) не важен, но мы по прежнему хотим, чтобы шаблон соответствовал массиву с одним и большим количеством элементов, мы можем использовать подшаблон *_, вторая часть:
🐍 Укус питона // 💬 Чат // #теория #pattern_matching #массивы
Если необходимо сравнивать выражение с массивом неопределенной длины, то можно определить значения/переменные только для обязательных элементов массива, а на необязательные ссылаться с помощью символа * (звездочки), смотрим код:
В примере применяется параметр *other, который соответствует всем остальным элементам. То есть шаблон [first, *other] соответствует любому массиву, который имеет как минимум один элемент, и этот элемент будет помещаться в параметр first. Все остальные элементы помещаются в параметр other, который представляет массив значений.
Если нам параметр с символом * (other) не важен, но мы по прежнему хотим, чтобы шаблон соответствовал массиву с одним и большим количеством элементов, мы можем использовать подшаблон *_, вторая часть:
🐍 Укус питона // 💬 Чат // #теория #pattern_matching #массивы
erid: LjN8K5NSk
Привет!
Мы BAUM, российская IT-компания. Наша работа — создавать продвинутые системы хранения данных и прикладной искусственный интеллект.Недавно мы завели аккаунт, где будем делиться своим опытом, давать советы для успешной карьеры, публиковать вакансии и рассказывать об интересных событиях из нашей жизни.
Обещаем, что будет очень полезно и совсем не душно – подписывайся!
Реклама. ООО "СХД БАУМ". ИНН 9731024067.
Привет!
Мы BAUM, российская IT-компания. Наша работа — создавать продвинутые системы хранения данных и прикладной искусственный интеллект.Недавно мы завели аккаунт, где будем делиться своим опытом, давать советы для успешной карьеры, публиковать вакансии и рассказывать об интересных событиях из нашей жизни.
Обещаем, что будет очень полезно и совсем не душно – подписывайся!
Реклама. ООО "СХД БАУМ". ИНН 9731024067.
Что выведет этот код?
Anonymous Quiz
73%
KeyError
15%
{0: 1, 7: 0, 1: 1, 8: 0}
5%
{0: 0, 7: 0, 1: 1, 8: 1}
7%
{1: 1, 7: 2, 0: 1, 8: 1}
Альтернативные значения
Если необходимо, чтобы элемент массива соответствовал набору значений, то эти значения можно перечислить через вертикальную черту, смотрим первую часть кода:
В данном случае первый шаблон соответствует массиву из трех элементов, где первый элемент равен или "Tom", или "Tomas", или "Tommy".
Также можно задать альтернативные значения для отдельных элементов, но и альтернативные массивы, вторая часть:
В данном случае первый шаблон будет соответствовать двум массивам: ["Tom", "Sam", "Bob"] и ["Tomas", "Sam", "Bob"]
🐍 Укус питона // 💬 Чат // #теория #pattern_matching #массивы
Если необходимо, чтобы элемент массива соответствовал набору значений, то эти значения можно перечислить через вертикальную черту, смотрим первую часть кода:
В данном случае первый шаблон соответствует массиву из трех элементов, где первый элемент равен или "Tom", или "Tomas", или "Tommy".
Также можно задать альтернативные значения для отдельных элементов, но и альтернативные массивы, вторая часть:
В данном случае первый шаблон будет соответствовать двум массивам: ["Tom", "Sam", "Bob"] и ["Tomas", "Sam", "Bob"]
🐍 Укус питона // 💬 Чат // #теория #pattern_matching #массивы
Что выведет этот код?
Anonymous Quiz
80%
Salary: 12000 Salary: 8000
13%
Salary: 8000 Salary: 12000
7%
Программа завершилась с ошибками
Словари в pattern matching
Pattern matching позволяет проверить наличие в словаре определнных ключей и значений, первый пример:
Здесь предполагается, что в функцию look передается словарь. Первый шаблон (внимание на второй пример) соответствует словарю, в котором есть два элемента со следующими ключами и значениями: "red": "красный" и "blue": "синий".
Второй шаблон ({"red": "красный"}) соответствует любому словарю, где есть элемент "red": "красный". Аналогично третий шаблон ({"blue": "синий"}) соответствует любому словарю, где есть элемент "blue": "синий"
Четвертый шаблон - case {} соответствует в принципе любому словарю.
Последний шаблон соответствует любому значению и применяется на случай, если в функцию передан не словарь.
🐍 Укус питона // 💬 Чат // #теория #pattern_matching #словари
Pattern matching позволяет проверить наличие в словаре определнных ключей и значений, первый пример:
Здесь предполагается, что в функцию look передается словарь. Первый шаблон (внимание на второй пример) соответствует словарю, в котором есть два элемента со следующими ключами и значениями: "red": "красный" и "blue": "синий".
Второй шаблон ({"red": "красный"}) соответствует любому словарю, где есть элемент "red": "красный". Аналогично третий шаблон ({"blue": "синий"}) соответствует любому словарю, где есть элемент "blue": "синий"
Четвертый шаблон - case {} соответствует в принципе любому словарю.
Последний шаблон соответствует любому значению и применяется на случай, если в функцию передан не словарь.
🐍 Укус питона // 💬 Чат // #теория #pattern_matching #словари