Функции генераторы
Функции генераторы - это функции которые ведут себя как итераторы. Для их определения используется ключевое слово
В примере выше мы видим функцию генератор при вызове которой создаётся итерируемый объект генератора.
🐍 Укус питона // 💬 Чат // #теория #функции #генераторы
Функции генераторы - это функции которые ведут себя как итераторы. Для их определения используется ключевое слово
yield
. Их преимуществом является более грамотное потребление памяти, а так же в некоторых случаях уменьшение времени выполнения задачи.В примере выше мы видим функцию генератор при вызове которой создаётся итерируемый объект генератора.
🐍 Укус питона // 💬 Чат // #теория #функции #генераторы
Что в результате выведет данный код в консоль?
Anonymous Quiz
10%
['6', '2', '5'], ['6', '2', '5']
10%
['6', '2', '5'], None
34%
['2', '5', '6'], ['2', '5', '6']
46%
['2', '5', '6'], None
Таймер
В примере выше мы видим довольно простой, но при этом интересный код таймера, пройдемся по его частям:
Метод
У
Спецсимвол
🐍 Укус питона // 💬 Чат // #гайды #таймер
В примере выше мы видим довольно простой, но при этом интересный код таймера, пройдемся по его частям:
Метод
format
есть только у строк. Используется, если необходимо "вставить" переменные, значения каких-либо вычислений внутрь строки.У
print
есть аргумент end
, по умолчанию равен "\n"
. Это тот символ/строка, который(-ая) выводится после всех значений, переданных в print
. "\r"
переносит курсор в начало строки, без перехода на новую. Поэтому следующий вывод будет печататься "поверх" уже выведенных символов. Проще говоря - текст будет заменяться на новый. Спецсимвол
"\a"
вызывает звуковой сигнал.🐍 Укус питона // 💬 Чат // #гайды #таймер
Что выведет этот код?
Anonymous Quiz
10%
Both b and d
34%
Runtime error
48%
GFG facebook
8%
facebook GFG
Глобальный контекст
Глобальный контекст подразумевает, что переменная является глобальной, она определена вне любой из функций и доступна любой функции в программе. Смотрим код:
Видим что переменная name является глобальной и имеет глобальную область видимости. И обе определенные здесь функции могут свободно ее использовать.
🐍 Укус питона // 💬 Чат // #теория #переменные #область_видимости
Глобальный контекст подразумевает, что переменная является глобальной, она определена вне любой из функций и доступна любой функции в программе. Смотрим код:
Видим что переменная name является глобальной и имеет глобальную область видимости. И обе определенные здесь функции могут свободно ее использовать.
🐍 Укус питона // 💬 Чат // #теория #переменные #область_видимости
Что выведет этот код?
Anonymous Quiz
18%
Compilation error
61%
{‘key1’: 44, ‘key2’: 566}[1, 2, 3, 4]
13%
Runtime error
8%
None of the above
This media is not supported in your browser
VIEW IN TELEGRAM
Как быстро собрать такую форму оплаты? Легко!
Фронтенд гайд, это канал для верстальщиков, в котором публикуют:
✓ Готовый код
✓ Макеты для верстки
✓ Тесты на знание кода
Ускорь работу над своим проектом!
Фронтенд гайд, это канал для верстальщиков, в котором публикуют:
✓ Готовый код
✓ Макеты для верстки
✓ Тесты на знание кода
Ускорь работу над своим проектом!
Статические методы
Кроме обычных методов класс может определять статические методы. Такие методы предваряются аннотацией @staticmethod и относятся в целом к классу. Статические методы обычно определяют поведение, которое не зависит от конкретного объекта, смотрим код:
В данном случае в классе Person определен атрибут класса __type, который хранит значение, общее для всего класса - название класса. Причем поскольку название атрибута предваряется двумя подчеркиваниями, то данный атрибут будет приватным, что защитит от недопустимого изменения.
🐍 Укус питона // 💬 Чат // #теория #атрибуты #статические_методы
Кроме обычных методов класс может определять статические методы. Такие методы предваряются аннотацией @staticmethod и относятся в целом к классу. Статические методы обычно определяют поведение, которое не зависит от конкретного объекта, смотрим код:
В данном случае в классе Person определен атрибут класса __type, который хранит значение, общее для всего класса - название класса. Причем поскольку название атрибута предваряется двумя подчеркиваниями, то данный атрибут будет приватным, что защитит от недопустимого изменения.
🐍 Укус питона // 💬 Чат // #теория #атрибуты #статические_методы
Что выведет этот код?
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
34%
1 2 3 4 5 6
18%
1 2 3 4 5 6 7
26%
error
22%
Ничего из этого
Множественное наследование
Одной из отличительных особенностей языка 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 #конструкции