Python Map | Обучение
246 subscribers
196 photos
4 videos
1 file
85 links
Образовательный канал для программистов на Python 🐍

Сотрудничество – @HackingIP
Download Telegram
Утиная типизация

Утиная типизация – это концепция, характерная для языков программирования с динамической типизацией, позволяющая использовать объекты независимо от их типа, базируясь на их свойствах и методах.

Основная идея: при работе с объектом его тип не проверяется, вместо этого проверяются свойства и методы этого объекта.


Такой подход добавляет гибкости коду, позволяя легче расширять и изменять код, позволяет полиморфно работать с объектами, которые никак не связаны друг с другом.

#теория | @PyMapChannel
👍31
Мини-язык спецификаций f-строк

Многие знают, что такое f-строки и как их применять на практике для быстрого и удобного форматирования. Однако, f-строки обладают кое-какими полезными возможностями, некоторыми особенностями, о которых кто-нибудь может и не знать.

👉 Читать статью

#практика #статьи | @PyMapChannel
1
💥 Мы объявляем о розыгрыше совместно с @X_Python!

💯 О ПРИЗЕ
Для розыгрыша был разработан простой кроссплатформенный графический редактор "Paint" на Python с использованием графического фреймворка PyQt6.

Приложение позволяет открывать, сохранять и создавать новые растровые изображения. Из доступных инструментов для рисования имеются: карандаш, заливка цветом, баллончик с краской, а также фигуры: линия, прямоугольник и эллипс.

Имеется возможность настраивать цвет для рисования с помощью палитры цветов или же выбрать произвольный. Так же можно настраивать толщину линий для групп инструментов отдельно.

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

🫡 УСЛОВИЯ
• Быть подписанным на @X_Python и на @PyMapChannel.
• Из аудитории обоих каналов выберутся по 2 победителя случайным образом.
• Результаты через 7 дней (20.04.2024).

Участвуй в розыгрыше и не упусти возможность получить хороший проект!
5
Метод списка copy()

Метод copy() используется для создания поверхностной копии списка.

При поверхностном копировании создается новый список, в котором содержимое оригинального списка копируется, но ссылки на вложенные объекты не изменяются.

В первом случае примера такое поведение возникает из-за того, что copy_list содержит ссылку на original_list , т.е. обе переменные будут указывать на один и тот же объект в памяти. Для избежания такого поведения нужно создать копию списка.


#практика | @PyMapChannel
👍2
Итератор

Итератор – это объект, который способен возвращать элементы по одному за раз.

Для этого объект должен реализовать метод __next__(), который возвращает следующий элемент. Когда элементы закончились, он должен вызывать исключение StopIteration. Также этот объект имеет состояние и запоминает, где он находится во время итерации.


В частности генератор является подтипом итератора (но не наоборот).

#теория | @PyMapChannel
Время выполнения программы

Иногда требуется замерить время исполнения кода, чтобы понять, насколько оптимальное решение было выбрано.

Как вариант можно воспользоваться функцией perf_counter() из модуля time, которая возвращает время в секундах с наибольшим доступным разрешением.

Также, для этих целей можно использовать функции time() или monotonic(), но они имеют большую погрешность.

#практика | @PyMapChannel
🔥1👏1
🎉 Результаты розыгрыша:

Победители:
1. BBB0001 (@BBBB00007)
2. Athlon'chik (@duck_duck_duck_duck_duck_duck)
👏5
Модуль time: функция sleep()

Функция sleep() из модуля time используется для добавления задержки в выполнение программы. Её можно использовать для временной приостановки выполнения программы на определенное количество секунд.

Обрати внимание, функция time() останавливает выполнение только текущего потока, а не всей программы.

#практика | @PyMapChannel
Пакетный менеджер pip

PIP – это стандартный пакетный менеджер для установки и управления библиотеками и пакетами Python. Он позволяет легко устанавливать, обновлять, удалять и управлять зависимостями Python-проектов.

Вот некоторые основные команды pip:

Установка пакета:
pip install package_name

Обновление пакета до последней версии:
pip install --upgrade package_name

Удаление пакета:
pip uninstall package_name

Просмотр установленных пакетов:
pip list

Установка нужной версии пакета:
pip install package_name==version

PIP также поддерживает различные другие опции и флаги для управления пакетами и их зависимостями.

#теория | @PyMapChannel
👍3
Оператор break

Оператор break используется для выхода из цикла досрочно. Как только встречается оператор break, выполнение цикла прекращается, и управление передается следующему оператору после цикла или блоку кода, содержащему цикл.

Важно помнить, что оператор break прерывает только цикл, в котором он находится, и не влияет на внешние циклы, если такие имеются.

В данном примере приведен цикл, суммирующий положительнее целые числа и завершающий свое выполнение при вводе нуля или отрицательного значения


#практика | @PyMapChannel
Библиотека Pillow

Библиотека Pillow – это мощный и удобный инструмент для работы с растровой графикой в Python. Она предоставляет широкий набор функций для обработки, изменений и создания изображений. Pillow основана на библиотеке PIL (Python Imaging Library) и представляет собой её форк, который активно развивается и поддерживается.

Установка:
pip install pillow


На изображении приведён пример кода, демонстрирующий некоторые возможности Pillow.

#библиотеки | @PyMapChannel
👍3
Оператор continue

Оператор continue используется для пропуска текущей итерации цикла и перехода к следующей итерации, минуя оставшуюся часть кода внутри цикла.

#практика | @PyMapChannel
👍2
Функция next()

Функция next() в Python извлекает следующего элемента из итератора, вызывая метод __next__(). Если итератор исчерпан, и не передано значение по умолчанию, то возникает исключение StopIteration. Если же в функцию next() был передан второй аргумент по умолчанию, то этот аргумент будет возвращен в случае, если итератор исчерпан.

#практика | @PyMapChannel
👍2
Итерируемый объект

Итерируемый объект – это любой объект, реализующий метод iter() или getitem().

Цель итерируемого объекта – создать итератор. Для этого есть функция iter().


Ниже перечислены некоторые из наиболее распространенных итерируемых объектов:
кортежи;
● списки;
● строки;
множества;
словари;
файлы;
генераторы;

#теория | @PyMapChannel
👍2
Модуль time: функция time()

возвращает текущее время в секундах с момента начала эпохи (1 января 1970 года, 00:00:00 UTC) в виде числа с плавающей точкой.

#практика | @PyMapChannel
💯3
Функция dir()

Функция dir() используется для получения списка имен атрибутов объекта или модуля. Функция dir() также может быть использована без аргументов, чтобы получить список всех имен в текущей области видимости.

Если объект имеет метод с именем __dir__(), этот метод будет вызван и вернет список атрибутов. Если объект не предоставляет метод __dir__(), то функция пытается собрать информацию из атрибутов __dict__ и __slots__ объекта.


Механизм dir() по умолчанию ведет себя по-разному с различными типами объектов:
1. Если объект – модуль, список будет содержать имена атрибутов модуля;
2. Если объект – тип или класс, список будет содержать имена атрибутов данного объекта и его родителей.
3. В других случаях список будет содержать имена атрибутов самого объекта, его класса, и классов–родителей.

#практика | @PyMapChannel
👍1
Модуль queue: класс Queue

Очередь (queue) - это структура данных, которая поддерживает операции добавления элемента в конец очереди (put) и извлечения элемента из начала очереди (get). Очереди работают по принципу "первым пришел, первым ушел" (First-In-First-Out, FIFO).

Модуль queue реализует очереди с несколькими производителями (multi-producer) и потребителями (multi-consumer)

👉 Читать документацию

#библиотеки #статьи | @PyMapChannel