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

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

👉 Чат: @abyteofpython
👉 Поделиться с друзьями: @byteofpython
Download Telegram
Что выведет этот код?
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 #конструкции
Что выведет этот код?
Anonymous Quiz
32%
10
8%
False
51%
True
9%
Error
Поиск в строке

Для поиска подстроки в строке в Python применяется метод find(), который возвращает индекс первого вхождения подстроки в строку и имеет три формы:

• find(str): поиск подстроки str ведется с начала строки до ее конца
• find(str, start): параметр start задает начальный индекс, с которого будет производиться поиск
• find(str, start, end): параметр end задает конечный индекс, до которого будет идти поиск

Если подстрока не найдена, метод возвращает -1, смотрим код:

🐍 Укус питона // 💬 Чат // #теория #строки
🐍 Укус питона 🐍 pinned «Что выведет этот код?»
Аннотации свойств

Рассмотрим элегантный способ определения свойств. Способ предполагает использование аннотаций, которые предваряются символом @. Для создания свойства-геттера над свойством ставится аннотация @property.
Для создания свойства-сеттера над свойством устанавливается аннотация имя_свойства_геттера.setter.
Перепишем класс Person с использованием аннотаций, смотрим код:

Во-первых, стоит обратить внимание, что свойство-сеттер определяется после свойства-геттера.
Во-вторых, и сеттер, и геттер называются одинаково - age. И поскольку геттер называется age, то над сеттером устанавливается аннотация @age.setter.
После этого, что к геттеру, что к сеттеру, мы обращаемся через выражение tom.age.

🐍 Укус питона // 💬 Чат // #теория #свойства
Что выведет этот код?
Anonymous Quiz
23%
byteofpython
65%
love
7%
abhi
5%
Error
Множества

Множество (set) представляют еще один вид набора, который хранит только уникальные элементы. Для определения множества используются фигурные скобки, в которых перечисляются элементы, смотрим 1 часть кода:

Обратите внимание, что несмотря на то, что функция print вывела один раз элемент "Tom", хотя в определении множества этот элемент содержится два раза. Все потому что множество содержит только уникальные значения.

Также для определения множества может применяться функция set(), в которую передается список или кортеж элементов, вторая часть кода:

🐍 Укус питона // 💬 Чат // #теория #множества
Получение результата функции

Подобным образом можно получить результат функции и при необходимости изменить его, смотрим:

Здесь определена функция sum(), которая возвращает сумму чисел. В декораторе check проверяем результат функции и для простоты, если он меньше нуля, то возвращаем 0.

🐍 Укус питона // 💬 Чат // #теория #декораторы #функции
Блок finally

При обработке исключений также можно использовать необязательный блок finally. Отличительной особенностью этого блока является то, что он выполняется вне зависимости, было ли сгенерировано исключение, смотрим код:

Как правило, блок finally применяется для освобождения используемых ресурсов, например, для закрытия файлов.

🐍 Укус питона // 💬 Чат // #теория #исключения
Что выведет этот код?
Anonymous Quiz
12%
True 2
78%
True
9%
False
1%
False 2