🐍 Укус питона 🐍
2.89K subscribers
762 photos
4 videos
279 links
🐍 Канал о программировании на языке Python. Тематические уроки и лайфхаки.

👽 Админ - @it_dashka
🔊 Купить рекламу: https://telega.in/c/byteofpython

👉 Чат: @abyteofpython
👉 Поделиться с друзьями: @byteofpython
Download Telegram
Функции генераторы

Функции генераторы - это функции которые ведут себя как итераторы. Для их определения используется ключевое слово 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 является глобальной и имеет глобальную область видимости. И обе определенные здесь функции могут свободно ее использовать.

🐍 Укус питона // 💬 Чат // #теория #переменные #область_видимости
This media is not supported in your browser
VIEW IN TELEGRAM
Как быстро собрать такую форму оплаты? Легко!

Фронтенд гайд, это канал для верстальщиков, в котором публикуют:
✓ Готовый код
✓ Макеты для верстки
✓ Тесты на знание кода

Ускорь работу над своим проектом!
Статические методы

Кроме обычных методов класс может определять статические методы. Такие методы предваряются аннотацией @staticmethod и относятся в целом к классу. Статические методы обычно определяют поведение, которое не зависит от конкретного объекта, смотрим код:

В данном случае в классе Person определен атрибут класса __type, который хранит значение, общее для всего класса - название класса. Причем поскольку название атрибута предваряется двумя подчеркиваниями, то данный атрибут будет приватным, что защитит от недопустимого изменения.

🐍 Укус питона // 💬 Чат // #теория #атрибуты #статические_методы
Обращение к элементам списка

Для обращения к элементам списка надо использовать индексы, которые представляют номер элемента в списка. Индексы начинаются с нуля. То есть первый элемент будет иметь индекс 0, второй элемент - индекс 1 и так далее. Для обращения к элементам с конца можно использовать отрицательные индексы, начиная с -1. То есть у последнего элемента будет индекс -1, у предпоследнего - -2 и так далее.

🐍 Укус питона // 💬 Чат // #теория #cписки
Множественное наследование

Одной из отличительных особенностей языка Python является поддержка множественного наследования, то есть один класс можно унаследовать от нескольких классов, смотрим код:

Здесь определен класс Employee, который представляет сотрудника фирмы, и класс Student, который представляет учащегося студента. Класс WorkingStudent, который представляет работающего студента, не определяет никакого функционала, поэтому в нем определен оператор pass. Класс WorkingStudent просто наследует функционал от двух классов Employee и Student. Соответственно у объекта этого класса мы можем вызвать методы обоих классов.

🐍 Укус питона // 💬 Чат // #теория #наследование
Что выведет этот код?
Anonymous Quiz
11%
12
21%
11
31%
11.001199999999999
37%
TypeError
Блок else

Если вдруг нам надо определить альтернативное решение на тот случай, если выражение в if возвратит False, то мы можем использовать блок else.

Если выражение language == "english" возвращает True, то выполняется блок if, иначе выполняется блок else. И поскольку в данном случае условие language == "english" возвращает False, то будут выполняться инструкция из блока else.

Причем инструкции блока else также должны имет отступы от начала строки. Например, в примере выше print("End") не имеет отступа, поэтому она не входит в блок else и будет выполнятьься вне зависимости, чему равно условие language == "english".

🐍 Укус питона // 💬 Чат // #теория #if #конструкции