Python tricks | Хитрости Питона
5.67K subscribers
2.21K photos
26 videos
1 file
2.52K links
Здесь вы найдете лучшие практики и приёмы, которые используют опытные программисты.

Сотрудничество: @SIeep_Token

Мы на платформе: https://telegram.me/python_tricks

Ссылка на канал: https://t.me/+QayZf6ccsQllZTYy
Download Telegram
Добро пожаловать в мир продвинутого Python программирования: @pro_python_code

В канале вы найдете :
📃Статьи ,
📚Книги
👨‍💻 Код
🔗Ссылки
🦾 Вакансии

🚀 А для всех, кто хочет изучить Гавный ит тренд - машинное обучение рекомеднуем канал: @machinelearning_ru

#Python #Django
#MachineLearning #DataScience


1 канал вместо тысячи учебников и курсов, подписывайтесь: 👇👇👇

🐍 @pro_python_code
Какой метод можно использовать для возврата строки в верхнем регистре букв?
Anonymous Quiz
12%
upperCase()
69%
upper()
5%
toUpperCase()
13%
uppercase()
Создание изображений

Чтобы создать новое изображение с помощью библиотеки Python Pillow PIL, используйте метод image_new().

В этом примере мы создадим новое изображение в режиме RGB с размером (400, 300). Мы не будем указывать цвет, поэтому методы new() считают значение цвета по умолчанию 0 – для каналов RGB будет черным цветом.
Какой метод можно использовать для замены частей строки?
Anonymous Quiz
9%
replaceString()
5%
switch()
5%
repl()
81%
replace()
Номинальная типизация

При номинальной типизации (nominal type system) совместимость типов определяется, основываясь на явных декларациях в коде программы, например, на именах классов и иерархии наследования.

Если класс Duck явно объявлен наследником класса Bird, то объекты класса Duck могут быть использованы везде, где ожидаются объекты класса Bird. Применительно к Python, mypy может статически, без непосредственного запуска программы, основываясь только на исходном коде, проверить такую совместимость.
Что вернет это выражение?

100 > 0 == True
Anonymous Quiz
69%
True
12%
False
19%
SyntaxError
Структурная типизация

Структурная типизация (structural type system) определяет совместимость типов на основе структуры этих типов, а не на явных декларациях. Подобный механизм может рассматриваться как некоторый аналог утиной типизации, но для статических проверок, в некотором смысле compile time duck typing.

Структурная типизация также довольно широко распространена. Например, интерфейсы в Go – это набор методов, которые определяют некоторую функциональность. Типы, реализующие интерфейсы в Go не обязаны декларировать каким-либо образом, что они реализуют данный интерфейс, достаточно просто реализовать соответствующие методы интерфейса.

На примере класс Employee является подтипом Person, хотя в коде нет никаких явных деклараций наследования. Важно лишь то, что Employee имеет необходимые свойства name и age. Класс Figure, напротив, не имеет указанных свойств и, следовательно, не может быть использован там, где ожидается Person.
Что выведет код сверху?
Anonymous Quiz
48%
[1, 2, 3, 'abc']
7%
[1, 2, 3]
8%
Error
36%
[1, 2, 3, 'a', 'b', 'c']
Метод intersection()

Метод intersection() возвращает новый набор с элементами, общими для всех наборов. Пересечение двух или более наборов ‒ это набор элементов, общих для всех наборов.
Какая коллекция упорядочена, изменчива и допускает дублирование членов?
Anonymous Quiz
16%
dictionary
12%
set
59%
list
13%
tuple
PrettyTable в python

PrettyTable — это библиотека Python, разработанная для простого и быстрого отображения табличных данных в визуально удобных таблицах ASCII.

На примере добавлены данные по одному столбцу за раз. Для этого используется метод add_column, который принимает два аргумента, название столбца и список или кортеж, содержащий значения.
Что выведет код сверху?
Anonymous Quiz
26%
1, 2, 3
36%
3
7%
(3)
31%
Error
defaultdict: безошибочный словарь

Обычный словарь dict в Python содержит пары вида «ключ:значение». Значение из словаря можно запросить по ключу. В случае если запрашиваемого ключа в словаре нет, Python выдаст ошибку.

Поведение логичное, но не слишком удобное для работы. Словарь defaultdict из библиотеки collections поступает иначе: если запросить у такого продвинутого словаря ключ, которого в нём нет, он не обидится и не выкинет ошибку, а вместо этого:

— создаст этот ключ;
—создаст к нему значение, которое будет иметь тип, оговорённый по умолчанию («по дефолту» — отсюда, кстати, и название), — например, целое число или строку;
—вернёт вам это значение.
Что выведет код сверху?
Anonymous Quiz
13%
-6
5%
5
32%
-10
14%
-5
32%
Error
5%
10
Функция glob()

C помощью функции glob() мы можем получить список файлов, соответствующих определенному шаблону (мы должны определить этот конкретный шаблон внутри функции).

Список, возвращаемый функцией glob(), будет строкой, которая должна содержать спецификацию пути в соответствии с путем, который мы определили внутри функции. Строка или итератор для функции glob() фактически возвращает то же значение, что и функция iglob(), без фактического сохранения в ней этих значений (имен файлов).
Что выведет код?

print(50 and 100)
Anonymous Quiz
33%
50 100
7%
50
15%
100
45%
ни один из перечисленных
Функция escape()

Функция escape() становится очень действенным, поскольку позволяет нам избежать заданной последовательности символов, которую мы определили в функции.
Функция escape() очень удобна для поиска файлов, в именах которых есть определенные символы (как мы определим в функции). Она будет соответствовать последовательности, сопоставляя произвольную буквальную строку в именах файлов с этим специальным символом в них.

Escape() следует использовать с функцией glob() или iglob(), чтобы в результате мы могли распечатать список имен файлов в выходных данных.