Just Python
11.2K subscribers
3.66K photos
11 videos
3.65K links
🐍Простое изучение Python.

Ссылка: @Portal_v_IT

Сотрудничество: @oleginc, @tatiana_inc

Канал на бирже: telega.in/c/justpython_it

РКН: clck.ru/3MnbSc
Download Telegram
Быстро создаём SQLite-базу данных

Когда нужно протестировать идею или сделать лёгкое приложение, новички часто тратят время на настройку полноценной СУБД. Но в Python есть встроенная SQLite — это база данных, которая хранится в одном файле и не требует установки.

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

Итог:
SQLite позволяет быстро работать с базой данных без дополнительной установки. Подключение, создание таблиц и выполнение запросов — всё делается через стандартный модуль sqlite3.

#theory // Just Python
Contextlib для обработки внешних источников

Библиотека contextlib в Python предоставляет утилиты для работы с контекстными менеджерами и упрощения создания и использования ресурсов с помощью оператора with.

Ссылочка на доку

#theory // Just Python
Система поиска похожих изображений

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

Логика кода проста. Сначала мы превращаем все изображения базы в векторы. Затем извлекаются признаки из запроса. Вычисляем сходство между запросом и базой и в результате выводим топ-N наиболее похожих изображений.

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

Ссылка на код

#theory // Just Python
Получаем названия столбцов из результата запроса

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

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

Итог:
Чтобы получить список названий столбцов из SQL-запроса, можно использовать cursor.description — это простой способ понять структуру данных, особенно при работе с динамическими запросами.

#theory // Just Python
Проверьте, удовлетворяет ли каждый элемент списка какому-либо условию

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

#theory // Just Python
functools — встроенный в Python модуль, который предоставляет набор полезных функций, связанных с функциональным программированием.

Модуль functools предоставляет инструменты для работы с функциями высшего порядка, функциями обратного вызова (callback) и другими полезными возможностями.

Давайте разберём функцию reduce модуля functools.
Функция reduce применяет указанную функцию(в примере выше мы использовали lambda-функцию) к элементам итерируемого объекта слева направо, сворачивая их в одно значение. Это полезно, когда вам нужно применить операцию накопления к последовательности значений.

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

#theory // Just Python
partial — функция из модуля functools, которая используется для создания новой функции с некоторыми аргументами, которые уже заданы заранее.

На примере(см. выше) функция partial используется для создания новой функции с фиксированными значениями аргументов. Она принимает функцию и задает некоторые аргументы заранее, которые станут постоянными для создаваемой функции.

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

#theory // Just Python
Автоматически подставляем параметры в SQL-запрос

Новички иногда вставляют значения в SQL-запросы через f-строки или конкатенацию, что небезопасно и может привести к SQL-инъекциям. Python предлагает встроенный и безопасный способ подстановки данных в запрос с помощью параметризованных запросов.

Это не только безопаснее, но и удобнее для работы с переменными.

Итог:
Используйте ? и кортежи для подстановки значений в SQL-запросы — это защищает от SQL-инъекций и делает код чище и безопаснее.

#theory // Just Python
Forwarded from DevHumor
This media is not supported in your browser
VIEW IN TELEGRAM
Вечерний мем

Взято из: DevHumor
Получаем количество строк, затронутых SQL-запросом

После выполнения SQL-запроса может потребоваться узнать, сколько строк было затронуто — например, при UPDATE или DELETE. Многие новички не знают, что Python позволяет легко получить это значение.

Используйте атрибут cursor.rowcount, чтобы сразу узнать, сколько строк было изменено или удалено.

Итог:
cursor.rowcount позволяет получить количество строк, затронутых последним SQL-запросом — удобно для логирования, проверки и отладки.

#theory // Just Python
itertools для итерации более чем одного итерируемого объекта

Если вы когда-нибудь оказывались в ситуации, когда вы пишете вложенные циклы или сложные функции для итерации более чем одного итерируемого объекта, проверьте, есть ли нужная функция в библиотеке itertools.

Возможно, вам не придется изобретать велосипед — Python учтёт все ваши потребности.

#theory // Just Python
enumerate() — встроенная в Python функция, которая используется для итерации по последовательности одновременно с получением индекса и значения каждого элемента.

Синтаксис функции enumerate():
enumerate(sequence, start=1), где sequence - последовательность, по которой мы хотим производить итерацию (например, список, кортеж, строка и т.д.), а start (необязательный) - значение, с которого начинается индексирование. По умолчанию равно 0.

На примере(см. выше) я вывел список фруктов с их индексами :3

#theory // Just Python
Оптимизируем множественные вставки в БД

Когда нужно вставить много строк в базу данных, делать INSERT в цикле — медленно и неэффективно. Используйте executemany() — он вставляет все строки одним запросом, что значительно ускоряет выполнение.

Итог:
Используйте executemany() для пакетной вставки данных — это быстрее и уменьшает нагрузку на базу.

#theory // Just Python
setattr — функция, которая используется для установки значения атрибута объекта по его имени.

Синтаксис функции setattr():
setattr(object, attribute_name, value) 

• object - объект, для которого мы хотим установить атрибут.
• attribute_name - имя атрибута, который мы хотим установить.
• value - значение, которое мы хотим присвоить атрибуту.

Думаю, пример объяснять не надо. Если коротко: мы меняем артибут объекта Car :)

P.S. Если запрашиваемый атрибут не существует, то функция вернёт AttributeError, Необходимо обрабатывать это исключение.

#theory // Just Python
pandas — модуль для анализа и обработки данных

Pandas высокоуровневые структуры данных, такие как DataFrame, для эффективной и удобной работы с табличными данными. Pandas позволяет считывать и записывать данные из различных источников, выполнять операции фильтрации, сортировки, группировки, объединения и агрегации данных. Он также предлагает широкий набор функций для обработки пропущенных значений, работы с датами и временем, визуализации данных и многое другое.

В примере(см. выше) мы создаем DataFrame с именами и возрастами персон. Затем мы выводим DataFrame на экран. Далее мы фильтруем данные, выбирая только персон с возрастом выше 30. И в конце мы выводим отфильтрованный DataFrame

Документация и примеры кода здесь :3

#theory // Just Python
OpenCV — библиотека компьютерного зрения и обработки изображений.

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

В примере(см. выше) мы используем функцию imread() загрузки изображения. Затем мы используем функцию imshow() для отображения изображения на экране. Функция waitKey(0) ожидает нажатия клавиши на клавиатуре и затем destroyAllWindows() закрывает открытое окно с изображением.

Документация и примеры кода здесь

#theory // Just Python
getattr — функция, которая возвращает значение атрибута объекта с указанным именем

Если атрибут не существует, можно указать значение по умолчанию, которое будет возвращено вместо возбуждения исключения.

Синтаксис функции getattr:
getattr(object, attribute_name, default_value)

• object - объект, у которого нужно получить атрибут.
• attribute_name - имя атрибута, значение которого нужно получить.
• default_value (необязательно) - значение по умолчанию, возвращаемое, если атрибут не существует.

На примере выше мы получаем атрибут "color" объекта Car(т.е. blue)

P.S. Если атрибут не существует и не указано значение по умолчанию, функция вызовет исключение AttributeError, поэтому следует быть осторожным и удостовериться, что атрибут существует.

#theory // Just Python
Форматирование чисел с плавающей точкой.

Чтобы избежать e-число в числе с плавающей точкой — можно воспользоваться форматированием f-строк.

Синтаксис форматирования чисел с плавающей точкой
f"{число:.n}", где число - значение, которое мы хотим отформатировать, а n - количество знаков после запятой(вы также можете указать значение 0, что уберёт числа после запятой).

На примере(см. выше) получим цену SHIB, а зачем вывел e-число. Чтобы не показывать конечному пользователю некрасивое e-число, затем воспользуемся форматированием :3

#theory // Just Python
PaddleOCR для оптического распознавания символов

PaddleOCR — многоязычные наборы инструментов OCR на основе DL-фреймворка PaddlePaddle.

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

Ссылочка на доку

#theory // Just Python
psutil — кроссплатформенный, встроенный модуль, который позволяет получать данные о системе.

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

#theory // Just Python