Python Academy
10.6K subscribers
507 photos
75 videos
586 links
🐍 Прокачайте свои навыки в Python без лишних слов и бубна. Нет туториалов - только чистый код!
Download Telegram
Удаляем все пробелы из строки

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

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

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

Python Academy
👏9🔥21🤗1
Вывод импортированных модулей

При импорте модуля Python выполняет весь код в нём. При импорте пакета Python выполняет код в файле пакета init.py , если такой имеется. Все объекты, определённые в модуле или init.py , становятся доступны импортирующему.

Python Academy
🔥7🎉31😁1
Быстро создаём SQLite-базу данных

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

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

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

Python Academy
👍6🔥21🎉1🤗1
EMOT

emot
помогает переводить эмодзи и эмотиконы в слова. Подробнее о библиотеке можно почитать в Github-репозитории. Там же вы найдете большую коллекцию эмодзи и эмотиконов с их расшифровкой.

Python Academy
🤩4🔥2🎉2👍1👏1
Получаем названия столбцов из результата запроса

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

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

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

Python Academy
🤗52👍2🔥1😁1🎉1
Автоматически подставляем параметры в SQL-запрос

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

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

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

Python Academy
🤗5😁4🔥3🤩32🎉1
Получаем количество строк, затронутых SQL-запросом

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

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

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

Python Academy
🤗43🔥3🎉3🤩3👍2😁2👏1
Безопасные SQL-запросы с параметрами

Новички часто вставляют значения прямо в SQL-строку, что может привести к SQL-инъекциям и ошибкам. В Python с библиотекой sqlite3 (и другими DB API) правильнее использовать параметры запроса.

Вместо конкатенации строк, используйте ? — это защитит вас от уязвимостей и избавит от лишнего форматирования.

🎯 Итог
Используйте параметризованные запросы (? и кортеж) вместо подстановки значений вручную — это безопаснее и чище.

Python Academy
👍3🎉3🔥2👏2😁2🤗1
Рандомные координаты

Про комикс, который вызывается с помощью import antigravity слышали все (если  вы его не видели, то ловите). Но если покопаться, можно найти пасхалку в пасхалке: в модуле antigravity.py  можно найти функцию geohash, которая открывает другой комикс и генерирует случайные координаты.

Python Academy
5🔥3👏2🤩2🤗2👍1🎉1
Оптимизируем множественные вставки в БД

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

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

Python Academy
🔥5🤗43👍2🤩2😁1🎉1
Получаем количество строк без загрузки всех данных

Чтобы узнать, сколько строк вернёт запрос, не обязательно загружать все данные в память. Вместо SELECT * используйте SELECT COUNT(*) — это быстрее и экономит ресурсы.

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

Python Academy
🤩5🔥3👍2🎉2👏1😁1🤗1
Безопасные SQL-запросы через параметризованные запросы

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

🎯 Итог
Всегда используйте параметризованные запросы для защиты от SQL-инъекций. Это безопаснее и чище, чем вручную подставлять значения в строки.

Python Academy
🔥5👏4😁4🤗3🎉21👍1🤩1
Быстрое создание таблицы, если её нет

При первом запуске скрипта бывает нужно создать таблицу, если она ещё не существует. Вместо проверки вручную можно использовать встроенную конструкцию SQL — CREATE TABLE IF NOT EXISTS.

🎯 Итог
CREATE TABLE IF NOT EXISTS позволяет избежать ошибок при повторном создании таблицы и упрощает инициализацию базы данных.

Python Academy
👍4🎉3🤩3🔥2👏1🤗1
Используем параметризованные запросы для защиты от SQL-инъекций

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

🎯 Итог
Параметризованные запросы не только безопаснее, но и делают код чище. Никогда не вставляй переменные напрямую в SQL — используй placeholder'ы (? или %s), и передавай значения отдельно.

Python Academy
5🔥4🎉3😁2👍1👏1🤩1🤗1
Получаем все строки как словари

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

🎯 Итог
Используй row_factory = dict_factory, чтобы получать строки из БД как словари. Это упростит доступ к данным и сделает код более читаемым.

Python Academy
🔥3😁3🤗3👏2🎉2🤩2
Безопасные SQL-запросы с параметрами

Многие новички склонны вставлять значения напрямую в SQL-запросы с помощью f-строк, что может привести к SQL-инъекциям. Вместо этого лучше использовать параметризованные запросы — это безопаснее и чище.

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

Python Academy
🔥4🎉4🤗4👍2👏2🤩2
Автоматическое закрытие соединения с БД

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

🎯 Итог
Используй with при работе с базами данных — это не только чище, но и безопаснее: соединение закроется автоматически даже при ошибках.

Python Academy
3👍3🔥3🤩3😁2🤗2👏1🎉1
4😁4🎉4🤩3👍2🔥1👏1🤗1
Возврат нескольких значений из функции

Знаете ли вы, что можно осуществлять возврат нескольких значений из функции? Вот как это сделать.

Python Academy
6😁5🤗5👍4🤩4🎉3🔥2
Массовая вставка данных без цикла

Вставлять много записей по одной — неэффективно. Лучше использовать метод executemany, который сразу выполнит множество вставок за один запрос.

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

Python Academy
6🔥4😁4🎉4👏3🤗3👍2🤩2