Класс object. Строковое представление. Продолжение.
Рассмотрим другой выход решения проблемы недостаточной информации об объекте - определим в классе Person метод str() (по два подчеркивания с каждой стороны), смотрим код:
Метод str должен возвращать строку. И в данном случае мы возвращаем базовую информацию о человеке. Если нам потребуется использовать эту информацию в других методах класса, то мы можем использовать выражение self.str()
И теперь консольный вывод будет другим, нижняя часть примера:
🐍 Укус питона // 💬 Чат // #теория #классы #object
Рассмотрим другой выход решения проблемы недостаточной информации об объекте - определим в классе Person метод str() (по два подчеркивания с каждой стороны), смотрим код:
Метод str должен возвращать строку. И в данном случае мы возвращаем базовую информацию о человеке. Если нам потребуется использовать эту информацию в других методах класса, то мы можем использовать выражение self.str()
И теперь консольный вывод будет другим, нижняя часть примера:
🐍 Укус питона // 💬 Чат // #теория #классы #object
Что выведет этот код?
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 #массивы