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

Сотрудничество – @HackingIP
Download Telegram
Модули и пакеты

Модуль - это файл с расширением .py, который содержит код на Python. В модуле можно определять функции, классы, переменные и другие элементы программы. Для использования функций или классов из модуля в другом файле, можно импортировать модуль с помощью ключевого слова import.

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

#теория | @PyMapChannel
💯1
Обработка исключений try/except/else

Вы можете использовать ключевое слово else, для определения блока кода, который должен быть выполнен, если ошибок не было.

Пример:
Введите первое число: 5
Введите второе число: 0
На ноль делить нельзя

Введите первое число: 15
Введите второе число: 5
Результат: 3.0

#практика | @PyMapChannel
👍1
Иерархия исключений

#теория | @PyMapChannel
Фабричная функция

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

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

В этом примере animal_factory – фабричная функция, которая создает объекты классов Cat или Dog.
Она содержит логику выбора и создания конкретного типа объекта на основе переданных параметров.


#практика | @PyMapChannel
Модуль requests

Модуль requests в Python является одним из самых популярных инструментов для отправки HTTP-запросов. Она позволяет делать различные виды запросов, такие как GET, POST, PUT, DELETE и другие HTTP-методы.

С помощью requests можно отправлять запросы на серверы, получать данные, загружать файлы, устанавливать заголовки и cookies, работать с SSL-сертификатами и многое другое.

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


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

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

#библиотеки #статьи | @PyMapChannel
Быстрая сортировка

Быстрая сортировка (quicksort) — это один из наиболее эффективных и широко применяемых алгоритмов сортировки. Она основана на использовании стратегии "разделяй и властвуй".

Шаги алгоритма:
1. Выбирается опорный элемент из массива (обычно это средний элемент)
2. Оставшиеся элементы массива разделяются на две части: элементы меньше опорного и элементы больше опорного
3. Рекурсивно применяется алгоритм к каждой из подгрупп
4. Элементы объединяются таким образом, чтобы получить отсортированный массив


Временная сложность = O(n log n)
В наихудшем случае время работы может быть O(n²)

#алгоритмы | @PyMapChannel
👍1
Замыкания

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

Как правило, замыкания используются для создания декораторов (функций-оберток), которые могут изменять поведение других функций.

#теория | @PyMapChannel
PEP8

PEP 8 (Python Enhancement Proposal 8) – это стандарт стиля кодирования для языка Python.

Он определяет правила оформления кода, именования переменных, расстановки пробелов и другие соглашения, которые делают код более читаемым и понятным.

Соблюдение PEP 8 важно для единообразия кода в проекте, удобства совместной работы и последующей поддержки программы.


#теория | @PyMapChannel
👍7
Кортеж (tuple)

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

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

#типы_данных | @PyMapChannel
👍1
Модуль random: функция random

Функция random() из модуля random используется для генерации псевдослучайного числа с плавающей запятой в диапазоне от 0.0 до 1.0 (не включая). Она не принимает параметров и возвращает значения, равномерно распределенные между 0 и 1.

#библиотеки #практика | @PyMapChannel
👍2
Метод списка append()

Метод append() используется для добавления элемента в конец списка. Он позволяет добавлять только один элемент за один вызов.

#практика | @PyMapChannel
👍2
Утиная типизация

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

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


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

#теория | @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