⏱️ Измеряем время выполнения кода
Иногда важно узнать, сколько времени выполняется кусок кода, особенно при отладке или оптимизации. Вместо сложных замеров вручную можно использовать модуль time.
Сохраняем текущее время перед началом выполнения, затем снова измеряем — и вычитаем одно из другого. Так мы получаем точное время работы блока кода.
🎯 Итог
Для замеров времени выполнения используйте time.time() — это просто, наглядно и не требует сторонних библиотек.
Python Academy
Иногда важно узнать, сколько времени выполняется кусок кода, особенно при отладке или оптимизации. Вместо сложных замеров вручную можно использовать модуль time.
Сохраняем текущее время перед началом выполнения, затем снова измеряем — и вычитаем одно из другого. Так мы получаем точное время работы блока кода.
🎯 Итог
Для замеров времени выполнения используйте time.time() — это просто, наглядно и не требует сторонних библиотек.
Python Academy
🤩4❤3😁1🎉1🤗1
Проверяем, запущен ли скрипт напрямую или импортирован
Иногда нужно, чтобы часть кода выполнялась только при запуске файла напрямую, но не при импорте его как модуля. Это особенно важно при написании библиотек и модулей.
Python предлагает простой способ — использовать переменную name, которая будет равна "main" только при прямом запуске файла.
🎯 Итог
Если name == "main" — значит файл был запущен напрямую. Это позволяет изолировать код, не мешая при импорте и улучшая модульность.
Python Academy
Иногда нужно, чтобы часть кода выполнялась только при запуске файла напрямую, но не при импорте его как модуля. Это особенно важно при написании библиотек и модулей.
Python предлагает простой способ — использовать переменную name, которая будет равна "main" только при прямом запуске файла.
🎯 Итог
Если name == "main" — значит файл был запущен напрямую. Это позволяет изолировать код, не мешая при импорте и улучшая модульность.
Python Academy
😁3🤗3❤2🤩2👍1🎉1
Удаляем все пробелы из строки
При работе с вводом пользователя или текстом из файлов часто встречаются лишние пробелы. Новички могут использовать циклы и условия, но есть способ проще и элегантнее — метод .replace().
Этот приём позволяет удалить все пробелы из строки буквально в одну строку, заменяя ' ' на ''.
🎯 Итог
Метод replace(" ", "") позволяет быстро и без циклов убрать все пробелы из строки. Удобно для предобработки текста.
Python Academy
При работе с вводом пользователя или текстом из файлов часто встречаются лишние пробелы. Новички могут использовать циклы и условия, но есть способ проще и элегантнее — метод .replace().
Этот приём позволяет удалить все пробелы из строки буквально в одну строку, заменяя ' ' на ''.
🎯 Итог
Метод replace(" ", "") позволяет быстро и без циклов убрать все пробелы из строки. Удобно для предобработки текста.
Python Academy
👏9🔥2❤1🤗1
Вывод импортированных модулей
При импорте модуля Python выполняет весь код в нём. При импорте пакета Python выполняет код в файле пакета init.py , если такой имеется. Все объекты, определённые в модуле или init.py , становятся доступны импортирующему.
Python Academy
При импорте модуля Python выполняет весь код в нём. При импорте пакета Python выполняет код в файле пакета init.py , если такой имеется. Все объекты, определённые в модуле или init.py , становятся доступны импортирующему.
Python Academy
🔥7🎉3❤1😁1
Быстро создаём SQLite-базу данных
Когда нужно протестировать идею или сделать лёгкое приложение, новички часто тратят время на настройку полноценной СУБД. Но в Python есть встроенная SQLite — это база данных, которая хранится в одном файле и не требует установки.
С помощью модуля sqlite3 можно создать базу, таблицу и вставить данные всего в несколько строк.
🎯 Итог
SQLite позволяет быстро работать с базой данных без дополнительной установки. Подключение, создание таблиц и выполнение запросов — всё делается через стандартный модуль sqlite3.
Python Academy
Когда нужно протестировать идею или сделать лёгкое приложение, новички часто тратят время на настройку полноценной СУБД. Но в Python есть встроенная SQLite — это база данных, которая хранится в одном файле и не требует установки.
С помощью модуля sqlite3 можно создать базу, таблицу и вставить данные всего в несколько строк.
🎯 Итог
SQLite позволяет быстро работать с базой данных без дополнительной установки. Подключение, создание таблиц и выполнение запросов — всё делается через стандартный модуль sqlite3.
Python Academy
👍6🔥2❤1🎉1🤗1
EMOT
emot помогает переводить эмодзи и эмотиконы в слова. Подробнее о библиотеке можно почитать в Github-репозитории. Там же вы найдете большую коллекцию эмодзи и эмотиконов с их расшифровкой.
Python Academy
emot помогает переводить эмодзи и эмотиконы в слова. Подробнее о библиотеке можно почитать в Github-репозитории. Там же вы найдете большую коллекцию эмодзи и эмотиконов с их расшифровкой.
Python Academy
🤩4🔥2🎉2👍1👏1
Получаем названия столбцов из результата запроса
При работе с базой данных важно знать названия полей в результатах запроса. Новички часто пытаются вручную догадываться о структуре результата, особенно если данных много или они получены из внешнего источника.
С sqlite3 можно легко получить названия столбцов прямо из курсора после выполнения запроса, без дополнительного кода.
🎯 Итог
Чтобы получить список названий столбцов из SQL-запроса, можно использовать cursor.description — это простой способ понять структуру данных, особенно при работе с динамическими запросами.
Python Academy
При работе с базой данных важно знать названия полей в результатах запроса. Новички часто пытаются вручную догадываться о структуре результата, особенно если данных много или они получены из внешнего источника.
С sqlite3 можно легко получить названия столбцов прямо из курсора после выполнения запроса, без дополнительного кода.
🎯 Итог
Чтобы получить список названий столбцов из SQL-запроса, можно использовать cursor.description — это простой способ понять структуру данных, особенно при работе с динамическими запросами.
Python Academy
🤗5❤2👍2🔥1😁1🎉1
Автоматически подставляем параметры в SQL-запрос
Новички иногда вставляют значения в SQL-запросы через f-строки или конкатенацию, что небезопасно и может привести к SQL-инъекциям. Python предлагает встроенный и безопасный способ подстановки данных в запрос с помощью параметризованных запросов.
Это не только безопаснее, но и удобнее для работы с переменными.
🎯 Итог
Используйте ? и кортежи для подстановки значений в SQL-запросы — это защищает от SQL-инъекций и делает код чище и безопаснее.
Python Academy
Новички иногда вставляют значения в SQL-запросы через f-строки или конкатенацию, что небезопасно и может привести к SQL-инъекциям. Python предлагает встроенный и безопасный способ подстановки данных в запрос с помощью параметризованных запросов.
Это не только безопаснее, но и удобнее для работы с переменными.
🎯 Итог
Используйте ? и кортежи для подстановки значений в SQL-запросы — это защищает от SQL-инъекций и делает код чище и безопаснее.
Python Academy
🤗5😁4🔥3🤩3❤2🎉1
Получаем количество строк, затронутых SQL-запросом
После выполнения SQL-запроса может потребоваться узнать, сколько строк было затронуто — например, при UPDATE или DELETE. Многие новички не знают, что Python позволяет легко получить это значение.
Используйте атрибут cursor.rowcount, чтобы сразу узнать, сколько строк было изменено или удалено.
🎯 Итог
cursor.rowcount позволяет получить количество строк, затронутых последним SQL-запросом — удобно для логирования, проверки и отладки.
Python Academy
После выполнения SQL-запроса может потребоваться узнать, сколько строк было затронуто — например, при UPDATE или DELETE. Многие новички не знают, что Python позволяет легко получить это значение.
Используйте атрибут cursor.rowcount, чтобы сразу узнать, сколько строк было изменено или удалено.
🎯 Итог
cursor.rowcount позволяет получить количество строк, затронутых последним SQL-запросом — удобно для логирования, проверки и отладки.
Python Academy
🤗4❤3🔥3🎉3🤩3👍2😁2👏1
Безопасные SQL-запросы с параметрами
Новички часто вставляют значения прямо в SQL-строку, что может привести к SQL-инъекциям и ошибкам. В Python с библиотекой sqlite3 (и другими DB API) правильнее использовать параметры запроса.
Вместо конкатенации строк, используйте ? — это защитит вас от уязвимостей и избавит от лишнего форматирования.
🎯 Итог
Используйте параметризованные запросы (? и кортеж) вместо подстановки значений вручную — это безопаснее и чище.
Python Academy
Новички часто вставляют значения прямо в SQL-строку, что может привести к SQL-инъекциям и ошибкам. В Python с библиотекой sqlite3 (и другими DB API) правильнее использовать параметры запроса.
Вместо конкатенации строк, используйте ? — это защитит вас от уязвимостей и избавит от лишнего форматирования.
🎯 Итог
Используйте параметризованные запросы (? и кортеж) вместо подстановки значений вручную — это безопаснее и чище.
Python Academy
👍3🎉3🔥2👏2😁2🤗1
Рандомные координаты
Про комикс, который вызывается с помощью import antigravity слышали все (если вы его не видели, то ловите). Но если покопаться, можно найти пасхалку в пасхалке: в модуле antigravity.py можно найти функцию geohash, которая открывает другой комикс и генерирует случайные координаты.
Python Academy
Про комикс, который вызывается с помощью import antigravity слышали все (если вы его не видели, то ловите). Но если покопаться, можно найти пасхалку в пасхалке: в модуле antigravity.py можно найти функцию geohash, которая открывает другой комикс и генерирует случайные координаты.
Python Academy
❤5🔥3👏2🤩2🤗2👍1🎉1
Оптимизируем множественные вставки в БД
Когда нужно вставить много строк в базу данных, делать INSERT в цикле — медленно и неэффективно. Используйте executemany() — он вставляет все строки одним запросом, что значительно ускоряет выполнение.
🎯 Итог
Используйте executemany() для пакетной вставки данных — это быстрее и уменьшает нагрузку на базу.
Python Academy
Когда нужно вставить много строк в базу данных, делать INSERT в цикле — медленно и неэффективно. Используйте executemany() — он вставляет все строки одним запросом, что значительно ускоряет выполнение.
🎯 Итог
Используйте executemany() для пакетной вставки данных — это быстрее и уменьшает нагрузку на базу.
Python Academy
🔥5🤗4❤3👍2🤩2😁1🎉1
⚡ Получаем количество строк без загрузки всех данных
Чтобы узнать, сколько строк вернёт запрос, не обязательно загружать все данные в память. Вместо SELECT * используйте SELECT COUNT(*) — это быстрее и экономит ресурсы.
🎯 Итог
Используйте COUNT(*) для быстрой оценки количества записей — это эффективнее, чем вытягивать все строки и считать их вручную.
Python Academy
Чтобы узнать, сколько строк вернёт запрос, не обязательно загружать все данные в память. Вместо SELECT * используйте SELECT COUNT(*) — это быстрее и экономит ресурсы.
🎯 Итог
Используйте COUNT(*) для быстрой оценки количества записей — это эффективнее, чем вытягивать все строки и считать их вручную.
Python Academy
🤩5🔥3👍2🎉2👏1😁1🤗1
Безопасные SQL-запросы через параметризованные запросы
Новички часто подставляют значения в SQL-запрос через f-строки или конкатенацию, что может привести к SQL-инъекциям. Вместо этого используйте параметризованные запросы — это безопасно и правильно.
🎯 Итог
Всегда используйте параметризованные запросы для защиты от SQL-инъекций. Это безопаснее и чище, чем вручную подставлять значения в строки.
Python Academy
Новички часто подставляют значения в SQL-запрос через f-строки или конкатенацию, что может привести к SQL-инъекциям. Вместо этого используйте параметризованные запросы — это безопасно и правильно.
🎯 Итог
Всегда используйте параметризованные запросы для защиты от SQL-инъекций. Это безопаснее и чище, чем вручную подставлять значения в строки.
Python Academy
🔥5👏4😁4🤗3🎉2❤1👍1🤩1
Быстрое создание таблицы, если её нет
При первом запуске скрипта бывает нужно создать таблицу, если она ещё не существует. Вместо проверки вручную можно использовать встроенную конструкцию SQL — CREATE TABLE IF NOT EXISTS.
🎯 Итог
CREATE TABLE IF NOT EXISTS позволяет избежать ошибок при повторном создании таблицы и упрощает инициализацию базы данных.
Python Academy
При первом запуске скрипта бывает нужно создать таблицу, если она ещё не существует. Вместо проверки вручную можно использовать встроенную конструкцию 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
Новички часто подставляют значения в SQL-запросы через f-строки или конкатенацию, что может привести к уязвимостям. Вместо этого лучше использовать параметризованные запросы, которые автоматически экранируют значения и защищают от SQL-инъекций.
🎯 Итог
Параметризованные запросы не только безопаснее, но и делают код чище. Никогда не вставляй переменные напрямую в SQL — используй placeholder'ы (? или %s), и передавай значения отдельно.
Python Academy
❤5🔥4🎉3😁2👍1👏1🤩1🤗1
Получаем все строки как словари
При работе с SQLite результат запроса по умолчанию возвращается в виде кортежей. Это не очень удобно, особенно если нужно обращаться к значениям по названиям колонок. Можно включить специальный режим, чтобы строки возвращались как словари.
🎯 Итог
Используй row_factory = dict_factory, чтобы получать строки из БД как словари. Это упростит доступ к данным и сделает код более читаемым.
Python Academy
При работе с SQLite результат запроса по умолчанию возвращается в виде кортежей. Это не очень удобно, особенно если нужно обращаться к значениям по названиям колонок. Можно включить специальный режим, чтобы строки возвращались как словари.
🎯 Итог
Используй row_factory = dict_factory, чтобы получать строки из БД как словари. Это упростит доступ к данным и сделает код более читаемым.
Python Academy
🔥3😁3🤗3👏2🎉2🤩2
Безопасные SQL-запросы с параметрами
Многие новички склонны вставлять значения напрямую в SQL-запросы с помощью f-строк, что может привести к SQL-инъекциям. Вместо этого лучше использовать параметризованные запросы — это безопаснее и чище.
🎯 Итог
Избегай f-строк в SQL-запросах — всегда используй параметризованные запросы, чтобы защититься от SQL-инъекций и писать более надёжный код.
Python Academy
Многие новички склонны вставлять значения напрямую в SQL-запросы с помощью f-строк, что может привести к SQL-инъекциям. Вместо этого лучше использовать параметризованные запросы — это безопаснее и чище.
🎯 Итог
Избегай f-строк в SQL-запросах — всегда используй параметризованные запросы, чтобы защититься от SQL-инъекций и писать более надёжный код.
Python Academy
🔥4🎉4🤗4👍2👏2🤩2
Автоматическое закрытие соединения с БД
Часто новички забывают закрыть соединение с базой данных, что может привести к утечкам ресурсов. Вместо ручного закрытия лучше использовать контекстный менеджер with, который автоматически закрывает соединение.
🎯 Итог
Используй with при работе с базами данных — это не только чище, но и безопаснее: соединение закроется автоматически даже при ошибках.
Python Academy
Часто новички забывают закрыть соединение с базой данных, что может привести к утечкам ресурсов. Вместо ручного закрытия лучше использовать контекстный менеджер with, который автоматически закрывает соединение.
🎯 Итог
Используй with при работе с базами данных — это не только чище, но и безопаснее: соединение закроется автоматически даже при ошибках.
Python Academy
❤3👍3🔥3🤩3😁2🤗2👏1🎉1