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

Сотрудничество – @HackingIP
Download Telegram
Модуль SymPy

Модуль SymPy — это мощная и простая в использовании библиотека для выполнения символьных вычислений на Python.

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


Установка библиотеки:
pip install sympy


#библиотеки | @PyMapChannel
🔥31
Объект Ellipsis "..."

Ellipsis в Python - это специальный объект, который обозначается тремя точками "..." и используется в Python в различных контекстах.


Вот самые распространенные варианты его использования:

• В качестве содержимого для функции или класса, которых вы еще не реализовали:
class MyClass:
def method(self):
# Этот код пока не реализован
...


• В аннотациях типов для указания возвращаемого типа вызываемого объекта без указания сигнатуры вызова, заменив список аргументов на "...":
from typing import Callable

def my_fn(func: Callable[..., str], *args) -> Callable[..., str]:
...


• В аннотациях типов для указания однородных кортежей одного типа произвольной длины :
from typing import Tuple

def my_fn(arg: Tuple[int, ...]) -> None:
...


• В NumPy для создания срезов в многомерных структур данных:
from numpy import arange

arr = arange(16).reshape(2, 2, 2, 2)

arr[..., 0].flatten()

# Эквивалентно
arr[:,:,:, 0].flatten()


#практика | @PyMapChannel
🤯1
Модуль math: объект nan

Константа math.nan это особый объект типа float, который называется NaN (Not a Number). Можно также создать с помощью float("nan").

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


Для проверки соответствия числа NaN, необходимо использовать функцию math.isnan() вместо операторов is или ==.

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

Встроенный модуль zipfile в Python обеспечивает широкие возможности работы с ZIP-архивами, включая создание, чтение, запись, добавление и просмотр содержимого файлов в архиве ZIP.

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

После этого мы вызываем метод extractall(), который извлекает все файлы из архива в текущую директорию, где расположен скрипт Python.


Этот код полезен при необходимости просмотра содержимого архива ZIP и извлечения всех файлов из него.

🐍 Python Map | Обучение
2🤯21👍1
😎 Отображение смайлов в Python

Использование Unicode:
Каждый смайл имеет уникальный код в стандарте Unicode. Вы можете использовать комбинацию \U и этого кода для отображения смайлов непосредственно в вашем коде.

Использование коротких имен CLDR:
Помимо Unicode, смайлы также имеют короткие имена CLDR (Common Locale Data Repository), которые можно использовать с комбинацией \N.

💾 Список смайлов (имя + Unicode)

🐍 Python Map | Обучение
😎2🔥1
Модуль spellchecker

Модуль spellchecker в Python — это удобный инструмент, предназначенный для выполнения проверки орфографии текста.

Основные возможности:

1. Проверка слов: определяет, есть ли написанное слово в словаре.

2. Исправление ошибок: предлагает варианты исправления для неверно написанных слов.

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


Установка библиотеки:
pip install pyspellchecker


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

🐍 Python Map | Обучение
Модуль inspect: функция getmodule

Функция getmodule из модуля inspect позволяет получить модуль, в котором определен переданный объект (функция, класс, метод или экземпляр).

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


Функция возвращает объект модуля, в котором определён указанный объект. Если объект не принадлежит ни одному модулю (например, был создан динамически), функция может вернуть None.

🐍 Python Map | Обучение
🔥21👍1
Модуль prettytable

Модуль prettytable в Python используется для создания и отображения красивых ASCII таблиц в консольных приложениях.

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


Кроме того, библиотека поддерживает чтение данных из CSV, HTML или курсора базы данных.


Установка библиотеки:
pip install prettytable


🐍 Python Map | Обучение
🔥31
Деструктурирующее присваивание

Оператор присваивания в Python поддерживает множественное присваивание с помощью синтаксиса списков или кортежей, используя любой итерируемый объект с нужным количеством элементов.

a, b = range(2)
# a = 0, b = 1

(a, b) = {1: "one", 2: "two"}
# a = 1, b = 2

[a, b] = {3, 5}
# a = 4, b = 5

Левая сторона не является реальным кортежем или списком, а задает структуру для объектов a и b, подобно сопоставлению с шаблоном.


a, b = 42, [16, 72]
# a = 46, b = [16, 72]

c, [d] = 42, [16, 72]
# ValueError: too many values to unpack (expected 1)

Таким образом, множественное присваивание выполняет две задачи: присваивает значения и проверяет количество элементов.


В качестве крайнего случая синтаксис также позволяет указывать списки присвоения нулевой длины.

[] = []


Левая и правая части [] - это принципиально разные вещи. Правая часть … = [] обозначает фактический список без элементов. Левая часть [] = … просто обозначает "нулевые имена".

🐍 Python Map | Обучение
👍2🤯2
Модуль pyscreenshot

Pyscreenshot — кроссплатформенная библиотека для создания скриншотов в Python, поддерживающая Windows, macOS и Linux. Она легко интегрируется с другими модулями и предлагает удобный интерфейс для захвата изображений.

На картинке показан пример, как сделать скриншот всего экрана и сохранить его в файл.

Установка библиотеки:
pip install pyscreenshot


🐍 Python Map | Обучение
Модуль pickle

Модуль pickle в Python предоставляет средства для сериализации и десериализации объектов, что позволяет сохранять их в файл или передавать через сеть. Сериализация — это преобразования объекта в поток байтов. Десериализация — это обратный процесс.

Основные функции модуля:

1. pickle.dump(obj, file): Сериализует объект obj и записывает его в открытый файл file.
2. pickle.load(file): Загружает объект из файла file, десериализуя его в исходный объект Python.
3. pickle.dumps(obj): Сериализует объект obj и возвращает его в виде байтовой строки.
4. pickle.loads(bytes): Десериализует объект из байтовой строки bytes.

Модуль pickle — это удобный и мощный способ сериализации и десериализации объектов в Python.


🐍 Python Map | Обучение
3
Что выведет этот код?
Anonymous Quiz
1%
aa
53%
aa bb
39%
Ошибка
7%
Узнать ответ
Константы модуля string

Модуль string в Python предоставляет ряд полезных констант, которые помогают работать со строками более эффективно и удобно.

➡️ Основной список:

1. string.ascii_letters: Содержит все буквы английского алфавита (как заглавные, так и строчные).
2. string.digits: Включает все десятичные цифры от 0 до 9.
3. string.hexdigits: Содержит шестнадцатеричные цифры (0-9 и a-f, A-F).
4. string.octdigits: Включает восьмеричные цифры (0-7).
5. string.punctuation: Содержит все знаки пунктуации.
6. string.whitespace: Включает все пробельные символы (пробелы, табуляции и переносы строк).

➡️ Пример использования:

import string

# Функция проверяет, состоит ли строка только из букв
def is_alpha(s):
return all(char in string.ascii_letters for char in s)

# Тестируем функцию
print(is_alpha("HelloWorld")) # Вывод: True
print(is_alpha("Hello World!")) # Вывод: False


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


🐍 Python Map | Обучение
🔥3💯1
Взаимодействие с файлами в Python

Python предоставляет мощные возможности для работы с файлами, что позволяет программам читать, записывать и обрабатывать текстовые и двоичные данные.

Открытие файла

Для открытия файла используйте функцию open(). Вот синтаксис:

file = open('имя_файла.txt', 'режим')


Где режим может быть:
- 'r' - чтение (по умолчанию)
- 'w' - запись (создает новый файл или перезаписывает существующий)
- 'a' - добавление (добавляет данные в конец файла)
- 'b' - двоичный режим (например, 'rb' для чтения двоичных файлов).

Чтение из файла

- read(размер) - читает заданное количество байтов или весь файл
- readline() - читает одну строку файла
- readlines() - читает список всех строк файла

Запись в файл

- write(данные) - записывает данные в файл
- writelines(список) - записывает список строк в файл

Другие операции

- close() - закрывает файл
- seek(смещение, откуда) - устанавливает указатель чтения/записи
- tell() - возвращает текущее положение указателя

Пример: считывание файла

with open('my_file.txt', 'r') as f:
    for line in f:
        print(line)


Пример: запись в файл

with open('my_file.txt', 'w') as f:
    f.write('Это строка, записанная в файл.')


Обработка исключений

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

FileNotFoundError: файл не найден
PermissionError: нет разрешения на открытие файла
IOError: общая ошибка ввода-вывода.

try:
with open('несуществующий_файл.txt', 'r') as file:
content = file.read()
except FileNotFoundError:
print("Файл не найден.")


Закрытие файла

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

file.close()


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

🐍 Python Map | Обучение
🔥2👍1🏆1
📄 Модуль logging

Логирование — ключевой аспект разработки, позволяющий отслеживать состояние приложения и выявлять проблемы. В Python для этого часто используется встроенный модуль logging, который предлагает гибкие механизмы записи логов. В этом посте мы рассмотрим, как его настроить.

Основные возможности

- Записывать сообщения разного уровня важности (DEBUG, INFO, WARNING, ERROR, и CRITICAL).
- Конфигурировать формат сообщений, включая временные метки, уровень логирования и текст сообщения.
- Записывать логи не только в консоль, но и в файлы, сетевые сокеты и даже базы данных.

Пример простого приложения с логированием

import logging

# Настройка логирования
logging.basicConfig(
level=logging.DEBUG, # Устанавливаем уровень логирования
format='%(asctime)s - %(levelname)s - %(message)s', # Формат сообщения
handlers=[
logging.FileHandler("app.log"), # Запись логов в файл
logging.StreamHandler() # Вывод логов в консоль
]
)

# Примеры логирования
def main():
logging.debug("Это отладочное сообщение.")
logging.info("Приложение запущено.")
try:
result = 10 / 0 # Исключение
except ZeroDivisionError:
logging.error("Деление на ноль произошло.", exc_info=True) # Логируем ошибку
logging.warning("Это предупреждающее сообщение.")
logging.info("Приложение завершено.")

if __name__ == "__main__":
main()



Объяснение кода

1. Импорт модуля: Сначала импортируется модуль logging.
2. Настройка логирования: basicConfig настраивает уровень логирования и формат сообщений. Логи будут выводиться как в файл app.log, так и в консоль.
3. Функция: В функции main записываются информационные и ошибочные сообщения, что позволяет отслеживать поведение программы.

Вывод логов

После выполнения программы в консоли и в файле app.log вы увидите записи, которые будут выглядеть примерно так:

2024-09-14 11:05:02,123 - DEBUG - Это отладочное сообщение.
2024-09-14 11:05:02,124 - INFO - Приложение запущено.
2024-09-14 11:05:02,125 - ERROR - Деление на ноль произошло.
Traceback (most recent call last):
File "app.py", line 10, in main
result = 10 / 0
ZeroDivisionError: division by zero
2024-09-14 11:05:02,126 - WARNING - Это предупреждающее сообщение.
2024-09-14 11:05:02,127 - INFO - Приложение завершено.


🐍 Python Map | Обучение
😎51🔥1