Что выведет этот код?
Anonymous Quiz
19%
[0, ‘2’, ‘3’, ‘4’, ‘5’, 0]
10%
[‘6’, ‘2’, ‘3’, ‘5’, ‘5’, ‘6’]
34%
[‘0’, ‘2’, ‘3’, ‘5’, ‘5’, ‘0’]
37%
[0, ‘2’, ‘3’, ‘5’, ‘5’, 0]
Обращение к элементам списка
Для обращения к элементам списка надо использовать индексы, которые представляют номер элемента в списка. Индексы начинаются с нуля. То есть первый элемент будет иметь индекс 0, второй элемент - индекс 1 и так далее. Для обращения к элементам с конца можно использовать отрицательные индексы, начиная с -1. То есть у последнего элемента будет индекс -1, у предпоследнего - -2 и так далее.
🐍 Укус питона // 💬 Чат // #теория #cписки
Для обращения к элементам списка надо использовать индексы, которые представляют номер элемента в списка. Индексы начинаются с нуля. То есть первый элемент будет иметь индекс 0, второй элемент - индекс 1 и так далее. Для обращения к элементам с конца можно использовать отрицательные индексы, начиная с -1. То есть у последнего элемента будет индекс -1, у предпоследнего - -2 и так далее.
🐍 Укус питона // 💬 Чат // #теория #cписки
Что выведет этот код?
Anonymous Quiz
33%
1 2 3 4 5 6
18%
1 2 3 4 5 6 7
26%
error
23%
Ничего из этого
Множественное наследование
Одной из отличительных особенностей языка Python является поддержка множественного наследования, то есть один класс можно унаследовать от нескольких классов, смотрим код:
Здесь определен класс Employee, который представляет сотрудника фирмы, и класс Student, который представляет учащегося студента. Класс WorkingStudent, который представляет работающего студента, не определяет никакого функционала, поэтому в нем определен оператор pass. Класс WorkingStudent просто наследует функционал от двух классов Employee и Student. Соответственно у объекта этого класса мы можем вызвать методы обоих классов.
🐍 Укус питона // 💬 Чат // #теория #наследование
Одной из отличительных особенностей языка Python является поддержка множественного наследования, то есть один класс можно унаследовать от нескольких классов, смотрим код:
Здесь определен класс Employee, который представляет сотрудника фирмы, и класс Student, который представляет учащегося студента. Класс WorkingStudent, который представляет работающего студента, не определяет никакого функционала, поэтому в нем определен оператор pass. Класс WorkingStudent просто наследует функционал от двух классов Employee и Student. Соответственно у объекта этого класса мы можем вызвать методы обоих классов.
🐍 Укус питона // 💬 Чат // #теория #наследование
Блок else
Если вдруг нам надо определить альтернативное решение на тот случай, если выражение в if возвратит False, то мы можем использовать блок else.
Если выражение language == "english" возвращает True, то выполняется блок if, иначе выполняется блок else. И поскольку в данном случае условие language == "english" возвращает False, то будут выполняться инструкция из блока else.
Причем инструкции блока else также должны имет отступы от начала строки. Например, в примере выше print("End") не имеет отступа, поэтому она не входит в блок else и будет выполнятьься вне зависимости, чему равно условие language == "english".
🐍 Укус питона // 💬 Чат // #теория #if #конструкции
Если вдруг нам надо определить альтернативное решение на тот случай, если выражение в if возвратит False, то мы можем использовать блок else.
Если выражение language == "english" возвращает True, то выполняется блок if, иначе выполняется блок else. И поскольку в данном случае условие language == "english" возвращает False, то будут выполняться инструкция из блока else.
Причем инструкции блока else также должны имет отступы от начала строки. Например, в примере выше print("End") не имеет отступа, поэтому она не входит в блок else и будет выполнятьься вне зависимости, чему равно условие language == "english".
🐍 Укус питона // 💬 Чат // #теория #if #конструкции
Поиск в строке
Для поиска подстроки в строке в Python применяется метод find(), который возвращает индекс первого вхождения подстроки в строку и имеет три формы:
• find(str): поиск подстроки str ведется с начала строки до ее конца
• find(str, start): параметр start задает начальный индекс, с которого будет производиться поиск
• find(str, start, end): параметр end задает конечный индекс, до которого будет идти поиск
Если подстрока не найдена, метод возвращает -1, смотрим код:
🐍 Укус питона // 💬 Чат // #теория #строки
Для поиска подстроки в строке в Python применяется метод find(), который возвращает индекс первого вхождения подстроки в строку и имеет три формы:
• find(str): поиск подстроки str ведется с начала строки до ее конца
• find(str, start): параметр start задает начальный индекс, с которого будет производиться поиск
• find(str, start, end): параметр end задает конечный индекс, до которого будет идти поиск
Если подстрока не найдена, метод возвращает -1, смотрим код:
🐍 Укус питона // 💬 Чат // #теория #строки
Что выведет этот код?
Anonymous Quiz
11%
ByteOfPython
55%
BOP
20%
BOP ByteOfPython
15%
Ошибка компиляции
Аннотации свойств
Рассмотрим элегантный способ определения свойств. Способ предполагает использование аннотаций, которые предваряются символом @. Для создания свойства-геттера над свойством ставится аннотация @property.
Для создания свойства-сеттера над свойством устанавливается аннотация имя_свойства_геттера.setter.
Перепишем класс Person с использованием аннотаций, смотрим код:
Во-первых, стоит обратить внимание, что свойство-сеттер определяется после свойства-геттера.
Во-вторых, и сеттер, и геттер называются одинаково - age. И поскольку геттер называется age, то над сеттером устанавливается аннотация @age.setter.
После этого, что к геттеру, что к сеттеру, мы обращаемся через выражение tom.age.
🐍 Укус питона // 💬 Чат // #теория #свойства
Рассмотрим элегантный способ определения свойств. Способ предполагает использование аннотаций, которые предваряются символом @. Для создания свойства-геттера над свойством ставится аннотация @property.
Для создания свойства-сеттера над свойством устанавливается аннотация имя_свойства_геттера.setter.
Перепишем класс Person с использованием аннотаций, смотрим код:
Во-первых, стоит обратить внимание, что свойство-сеттер определяется после свойства-геттера.
Во-вторых, и сеттер, и геттер называются одинаково - age. И поскольку геттер называется age, то над сеттером устанавливается аннотация @age.setter.
После этого, что к геттеру, что к сеттеру, мы обращаемся через выражение tom.age.
🐍 Укус питона // 💬 Чат // #теория #свойства
Множества
Множество (set) представляют еще один вид набора, который хранит только уникальные элементы. Для определения множества используются фигурные скобки, в которых перечисляются элементы, смотрим 1 часть кода:
Обратите внимание, что несмотря на то, что функция print вывела один раз элемент "Tom", хотя в определении множества этот элемент содержится два раза. Все потому что множество содержит только уникальные значения.
Также для определения множества может применяться функция set(), в которую передается список или кортеж элементов, вторая часть кода:
🐍 Укус питона // 💬 Чат // #теория #множества
Множество (set) представляют еще один вид набора, который хранит только уникальные элементы. Для определения множества используются фигурные скобки, в которых перечисляются элементы, смотрим 1 часть кода:
Обратите внимание, что несмотря на то, что функция print вывела один раз элемент "Tom", хотя в определении множества этот элемент содержится два раза. Все потому что множество содержит только уникальные значения.
Также для определения множества может применяться функция set(), в которую передается список или кортеж элементов, вторая часть кода:
🐍 Укус питона // 💬 Чат // #теория #множества
Что выведет этот код?
Anonymous Quiz
8%
[‘What’, ‘will’, ‘have’, ‘so’, ‘will’]
55%
Wh t will h ve so will
4%
What will have so will
33%
[‘Wh’, ‘t will h’, ‘ve so will’]