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
Симуляция частиц с Pygame

С помощью Pygame можно создать простую, но очень эффектную 2D-игру-симуляцию песка. Игрок будет сыпать песчинки мышкой, а частицы под действием гравитации будут падать вниз.

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

ссылка на код

#theory // Just Python
Forwarded from DevHumor
This media is not supported in your browser
VIEW IN TELEGRAM
У меня уровень A1

Взято из: DevHumor
os.listdir() + os.path.isfile()

Нужно обработать все файлы в директории? Новички часто пытаются вручную указывать имена, но Python позволяет получить список файлов автоматически!

Модуль os предоставляет метод listdir(), который возвращает содержимое директории, а фильтрация с помощью os.path.isfile() позволяет выбрать только файлы.

Итог:
Используйте os.listdir() + os.path.isfile(), чтобы получить список всех файлов в директории — удобно для массовой обработки, загрузки или анализа.

#theory // Just Python
Современные реализации бустинга

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

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

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

#theory // Just Python
Получаем размер файла в байтах

Иногда нужно узнать, сколько весит файл — например, перед загрузкой или отправкой по сети. Новички могут не знать, как это сделать быстро и просто.

Python предоставляет удобный способ с помощью функции os.path.getsize().

Итог:
Используйте os.path.getsize(path), чтобы легко получить размер файла в байтах. Удобно для логирования, проверки ограничений и статистики.

#theory // Just Python
Бесконечность в Python

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

Положительная бесконечность: inf
Отрицательная бесконечность: -inf

Поскольку бесконечность может быть как положительной, так и отрицательной, их можно представить как число float('inf') и число float('-inf') соответственно.

Примеры

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

Зачем это нужно?

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

На самом деле float - интересная штука, с помощью которой можно хорошо провести время ;)

#theory // Just Python
ReadWriteMemory — это топовая библиотека, позволяющая легко читать/записывать в память любого процесса.

С её помощью можно, например, сделать читы для игры.
А если подрубить такие библиотеки, как imGui, то можно вывести и оверлей чита.
Либо сделать простой трейнер.

Ставится командой pip install ReadWriteMemory
Документация и примеры кода здесь.

#theory // Just Python
all и any — полезные встроенные функции в Python!

Запомнить значение обоих функций по примеру выше очень просто.

Функция all возвращает True в случае когда все (all) элементы являются истинными(True), если один элемент - False, функция вернёт False.

Функция any возвращает True в том случае, когда любой (any) элемент является истинным, если все элементы являются False - функция возвращает False.

Вот и всё, всё настолько просто.

#theory // Just Python
lambda-функция — это компактный способ определить функцию без использования стандартного объявления def.

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

В примере выше мы используем lambda-функцию для того, чтобы отфильтровать список чисел для получения только чётных чисел.

Особенности lambda-функций:
• Они являются однострочными функциями.
• Они могут принимать любое количество аргументов, но могут содержать только одно выражение.
• Они сразу возвращают результат вычисления выражения.

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

#theory // Just Python
Удаляем все пробелы из строки

При работе с вводом пользователя или текстом из файлов часто встречаются лишние пробелы. Новички могут использовать циклы и условия, но есть способ проще и элегантнее — метод .replace().

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

Итог:
Метод replace(" ", "") позволяет быстро и без циклов убрать все пробелы из строки. Удобно для предобработки текста.

#theory // Just Python
Быстро создаём 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