Проверяем, запущен ли скрипт напрямую или импортирован
Иногда нужно, чтобы часть кода выполнялась только при запуске файла напрямую, но не при импорте его как модуля. Это особенно важно при написании библиотек и модулей.
Python предлагает простой способ — использовать переменную name, которая будет равна "__main__" только при прямом запуске файла.
🎯 Итог
Если name == "__main__" — значит файл был запущен напрямую. Это позволяет изолировать код, не мешая при импорте и улучшая модульность.
Иногда нужно, чтобы часть кода выполнялась только при запуске файла напрямую, но не при импорте его как модуля. Это особенно важно при написании библиотек и модулей.
Python предлагает простой способ — использовать переменную name, которая будет равна "__main__" только при прямом запуске файла.
🎯 Итог
Если name == "__main__" — значит файл был запущен напрямую. Это позволяет изолировать код, не мешая при импорте и улучшая модульность.
EMOT
emot помогает переводить эмодзи и эмотиконы в слова. Подробнее о библиотеке можно почитать в Github-репозитории. Там же вы найдете большую коллекцию эмодзи и эмотиконов с их расшифровкой.
emot помогает переводить эмодзи и эмотиконы в слова. Подробнее о библиотеке можно почитать в Github-репозитории. Там же вы найдете большую коллекцию эмодзи и эмотиконов с их расшифровкой.
Удаляем все пробелы из строки
При работе с вводом пользователя или текстом из файлов часто встречаются лишние пробелы. Новички могут использовать циклы и условия, но есть способ проще и элегантнее — метод .replace().
Этот приём позволяет удалить все пробелы из строки буквально в одну строку, заменяя ' ' на ''.
🎯 Итог
Метод replace(" ", "") позволяет быстро и без циклов убрать все пробелы из строки. Удобно для предобработки текста.
При работе с вводом пользователя или текстом из файлов часто встречаются лишние пробелы. Новички могут использовать циклы и условия, но есть способ проще и элегантнее — метод .replace().
Этот приём позволяет удалить все пробелы из строки буквально в одну строку, заменяя ' ' на ''.
🎯 Итог
Метод replace(" ", "") позволяет быстро и без циклов убрать все пробелы из строки. Удобно для предобработки текста.
Быстро создаём SQLite-базу данных
Когда нужно протестировать идею или сделать лёгкое приложение, новички часто тратят время на настройку полноценной СУБД. Но в Python есть встроенная SQLite — это база данных, которая хранится в одном файле и не требует установки.
С помощью модуля sqlite3 можно создать базу, таблицу и вставить данные всего в несколько строк.
🎯 Итог
SQLite позволяет быстро работать с базой данных без дополнительной установки. Подключение, создание таблиц и выполнение запросов — всё делается через стандартный модуль sqlite3.
Когда нужно протестировать идею или сделать лёгкое приложение, новички часто тратят время на настройку полноценной СУБД. Но в Python есть встроенная SQLite — это база данных, которая хранится в одном файле и не требует установки.
С помощью модуля sqlite3 можно создать базу, таблицу и вставить данные всего в несколько строк.
🎯 Итог
SQLite позволяет быстро работать с базой данных без дополнительной установки. Подключение, создание таблиц и выполнение запросов — всё делается через стандартный модуль sqlite3.
Получаем названия столбцов из результата запроса
При работе с базой данных важно знать названия полей в результатах запроса. Новички часто пытаются вручную догадываться о структуре результата, особенно если данных много или они получены из внешнего источника.
С sqlite3 можно легко получить названия столбцов прямо из курсора после выполнения запроса, без дополнительного кода.
🎯 Итог
Чтобы получить список названий столбцов из SQL-запроса, можно использовать cursor.description — это простой способ понять структуру данных, особенно при работе с динамическими запросами.
При работе с базой данных важно знать названия полей в результатах запроса. Новички часто пытаются вручную догадываться о структуре результата, особенно если данных много или они получены из внешнего источника.
С sqlite3 можно легко получить названия столбцов прямо из курсора после выполнения запроса, без дополнительного кода.
🎯 Итог
Чтобы получить список названий столбцов из SQL-запроса, можно использовать cursor.description — это простой способ понять структуру данных, особенно при работе с динамическими запросами.
Автоматически подставляем параметры в SQL-запрос
Новички иногда вставляют значения в SQL-запросы через f-строки или конкатенацию, что небезопасно и может привести к SQL-инъекциям. Python предлагает встроенный и безопасный способ подстановки данных в запрос с помощью параметризованных запросов.
Это не только безопаснее, но и удобнее для работы с переменными.
🎯 Итог
Используйте ? и кортежи для подстановки значений в SQL-запросы — это защищает от SQL-инъекций и делает код чище и безопаснее.
Новички иногда вставляют значения в SQL-запросы через f-строки или конкатенацию, что небезопасно и может привести к SQL-инъекциям. Python предлагает встроенный и безопасный способ подстановки данных в запрос с помощью параметризованных запросов.
Это не только безопаснее, но и удобнее для работы с переменными.
🎯 Итог
Используйте ? и кортежи для подстановки значений в SQL-запросы — это защищает от SQL-инъекций и делает код чище и безопаснее.
Получаем количество строк, затронутых SQL-запросом
После выполнения SQL-запроса может потребоваться узнать, сколько строк было затронуто — например, при UPDATE или DELETE. Многие новички не знают, что Python позволяет легко получить это значение.
Используйте атрибут cursor.rowcount, чтобы сразу узнать, сколько строк было изменено или удалено.
🎯 Итог
cursor.rowcount позволяет получить количество строк, затронутых последним SQL-запросом — удобно для логирования, проверки и отладки.
После выполнения SQL-запроса может потребоваться узнать, сколько строк было затронуто — например, при UPDATE или DELETE. Многие новички не знают, что Python позволяет легко получить это значение.
Используйте атрибут cursor.rowcount, чтобы сразу узнать, сколько строк было изменено или удалено.
🎯 Итог
cursor.rowcount позволяет получить количество строк, затронутых последним SQL-запросом — удобно для логирования, проверки и отладки.
Безопасные SQL-запросы с параметрами
Новички часто вставляют значения прямо в SQL-строку, что может привести к SQL-инъекциям и ошибкам. В Python с библиотекой sqlite3 (и другими DB API) правильнее использовать параметры запроса.
Вместо конкатенации строк, используйте ? — это защитит вас от уязвимостей и избавит от лишнего форматирования.
🎯 Итог
Используйте параметризованные запросы (? и кортеж) вместо подстановки значений вручную — это безопаснее и чище.
Новички часто вставляют значения прямо в SQL-строку, что может привести к SQL-инъекциям и ошибкам. В Python с библиотекой sqlite3 (и другими DB API) правильнее использовать параметры запроса.
Вместо конкатенации строк, используйте ? — это защитит вас от уязвимостей и избавит от лишнего форматирования.
🎯 Итог
Используйте параметризованные запросы (? и кортеж) вместо подстановки значений вручную — это безопаснее и чище.
Оптимизируем множественные вставки в БД
Когда нужно вставить много строк в базу данных, делать INSERT в цикле — медленно и неэффективно. Используйте executemany() — он вставляет все строки одним запросом, что значительно ускоряет выполнение.
🎯 Итог
Используйте executemany() для пакетной вставки данных — это быстрее и уменьшает нагрузку на базу.
Когда нужно вставить много строк в базу данных, делать INSERT в цикле — медленно и неэффективно. Используйте executemany() — он вставляет все строки одним запросом, что значительно ускоряет выполнение.
🎯 Итог
Используйте executemany() для пакетной вставки данных — это быстрее и уменьшает нагрузку на базу.
⚡ Получаем количество строк без загрузки всех данных
Чтобы узнать, сколько строк вернёт запрос, не обязательно загружать все данные в память. Вместо SELECT * используйте SELECT COUNT(*) — это быстрее и экономит ресурсы.
🎯 Итог
Используйте COUNT(*) для быстрой оценки количества записей — это эффективнее, чем вытягивать все строки и считать их вручную.
Чтобы узнать, сколько строк вернёт запрос, не обязательно загружать все данные в память. Вместо SELECT * используйте SELECT COUNT(*) — это быстрее и экономит ресурсы.
🎯 Итог
Используйте COUNT(*) для быстрой оценки количества записей — это эффективнее, чем вытягивать все строки и считать их вручную.
Безопасные SQL-запросы через параметризованные запросы
Новички часто подставляют значения в SQL-запрос через f-строки или конкатенацию, что может привести к SQL-инъекциям. Вместо этого используйте параметризованные запросы — это безопасно и правильно.
🎯 Итог
Всегда используйте параметризованные запросы для защиты от SQL-инъекций. Это безопаснее и чище, чем вручную подставлять значения в строки.
Новички часто подставляют значения в SQL-запрос через f-строки или конкатенацию, что может привести к SQL-инъекциям. Вместо этого используйте параметризованные запросы — это безопасно и правильно.
🎯 Итог
Всегда используйте параметризованные запросы для защиты от SQL-инъекций. Это безопаснее и чище, чем вручную подставлять значения в строки.
Быстрое создание таблицы, если её нет
При первом запуске скрипта бывает нужно создать таблицу, если она ещё не существует. Вместо проверки вручную можно использовать встроенную конструкцию SQL — CREATE TABLE IF NOT EXISTS.
🎯 Итог
CREATE TABLE IF NOT EXISTS позволяет избежать ошибок при повторном создании таблицы и упрощает инициализацию базы данных.
При первом запуске скрипта бывает нужно создать таблицу, если она ещё не существует. Вместо проверки вручную можно использовать встроенную конструкцию SQL — CREATE TABLE IF NOT EXISTS.
🎯 Итог
CREATE TABLE IF NOT EXISTS позволяет избежать ошибок при повторном создании таблицы и упрощает инициализацию базы данных.
Используем параметризованные запросы для защиты от SQL-инъекций
Новички часто подставляют значения в SQL-запросы через f-строки или конкатенацию, что может привести к уязвимостям. Вместо этого лучше использовать параметризованные запросы, которые автоматически экранируют значения и защищают от SQL-инъекций.
🎯 Итог
Параметризованные запросы не только безопаснее, но и делают код чище. Никогда не вставляй переменные напрямую в SQL — используй placeholder'ы (? или %s), и передавай значения отдельно.
Новички часто подставляют значения в SQL-запросы через f-строки или конкатенацию, что может привести к уязвимостям. Вместо этого лучше использовать параметризованные запросы, которые автоматически экранируют значения и защищают от SQL-инъекций.
🎯 Итог
Параметризованные запросы не только безопаснее, но и делают код чище. Никогда не вставляй переменные напрямую в SQL — используй placeholder'ы (? или %s), и передавай значения отдельно.
Получаем все строки как словари
При работе с SQLite результат запроса по умолчанию возвращается в виде кортежей. Это не очень удобно, особенно если нужно обращаться к значениям по названиям колонок. Можно включить специальный режим, чтобы строки возвращались как словари.
🎯 Итог
Используй row_factory = dict_factory, чтобы получать строки из БД как словари. Это упростит доступ к данным и сделает код более читаемым.
При работе с SQLite результат запроса по умолчанию возвращается в виде кортежей. Это не очень удобно, особенно если нужно обращаться к значениям по названиям колонок. Можно включить специальный режим, чтобы строки возвращались как словари.
🎯 Итог
Используй row_factory = dict_factory, чтобы получать строки из БД как словари. Это упростит доступ к данным и сделает код более читаемым.
Бывший маркетолог СберМаркета Юра Сапожников создал канал про E-commerce, российский онлайн-бизнес, маркетплейсы и digital – «Из коммерса в е-коммерса».
Если продаёте или покупаете в интернете, подписывайтесь, там цифры, новости, аналитика и шутейки иногда))
Юра сам из Е-кома и дружит со многими крупными компаниями, не редко публикуя анонсы раньше официальных пресс-релизов. Так что подписывайтесь: @hikollegi
Если продаёте или покупаете в интернете, подписывайтесь, там цифры, новости, аналитика и шутейки иногда))
Юра сам из Е-кома и дружит со многими крупными компаниями, не редко публикуя анонсы раньше официальных пресс-релизов. Так что подписывайтесь: @hikollegi
Безопасные SQL-запросы с параметрами
Многие новички склонны вставлять значения напрямую в SQL-запросы с помощью f-строк, что может привести к SQL-инъекциям. Вместо этого лучше использовать параметризованные запросы — это безопаснее и чище.
🎯 Итог
Избегай f-строк в SQL-запросах — всегда используй параметризованные запросы, чтобы защититься от SQL-инъекций и писать более надёжный код.
Многие новички склонны вставлять значения напрямую в SQL-запросы с помощью f-строк, что может привести к SQL-инъекциям. Вместо этого лучше использовать параметризованные запросы — это безопаснее и чище.
🎯 Итог
Избегай f-строк в SQL-запросах — всегда используй параметризованные запросы, чтобы защититься от SQL-инъекций и писать более надёжный код.
Автоматическое закрытие соединения с БД
Часто новички забывают закрыть соединение с базой данных, что может привести к утечкам ресурсов. Вместо ручного закрытия лучше использовать контекстный менеджер with, который автоматически закрывает соединение.
🎯 Итог
Используй with при работе с базами данных — это не только чище, но и безопаснее: соединение закроется автоматически даже при ошибках.
Часто новички забывают закрыть соединение с базой данных, что может привести к утечкам ресурсов. Вместо ручного закрытия лучше использовать контекстный менеджер with, который автоматически закрывает соединение.
🎯 Итог
Используй with при работе с базами данных — это не только чище, но и безопаснее: соединение закроется автоматически даже при ошибках.
Хотите научиться программировать, но теряетесь в выборе языка? Или уже изучаете Python, но не хватает практики? Тогда этот бесплатный мини-курс от Skillbox по Python-разработке — то, что нужно!
👉🏻 Если коротко: это мини-курс из 4 записанных уроков и 1 прямого эфира. Смотрите, когда удобно, после каждого выполняете задания. В итоге у вас будет 4 проекта для портфолио: Telegram-бот, который умеет превращать голос в текст, парсер для сбора данных и веб-страница на Flask. Неплохая практика для 5 занятий!
🎁 Ещё участников мини-курса ждут подарки: персональная карьерная консультация, скидка 10 000 рублей на любой курс Skillbox и подборка полезных материалов для старта карьеры в Python-разработке.
Переходите по ссылке и регистрируйтесь: https://epic.st/QeEKo?erid=2VtzqvjsSMq
Реклама. ЧОУ ДПО «Образовательные технологии «Скилбокс (Коробка навыков)», ИНН: 9704088880
👉🏻 Если коротко: это мини-курс из 4 записанных уроков и 1 прямого эфира. Смотрите, когда удобно, после каждого выполняете задания. В итоге у вас будет 4 проекта для портфолио: Telegram-бот, который умеет превращать голос в текст, парсер для сбора данных и веб-страница на Flask. Неплохая практика для 5 занятий!
🎁 Ещё участников мини-курса ждут подарки: персональная карьерная консультация, скидка 10 000 рублей на любой курс Skillbox и подборка полезных материалов для старта карьеры в Python-разработке.
Переходите по ссылке и регистрируйтесь: https://epic.st/QeEKo?erid=2VtzqvjsSMq
Реклама. ЧОУ ДПО «Образовательные технологии «Скилбокс (Коробка навыков)», ИНН: 9704088880
🧵 Упрощаем цепочки if с помощью match-case
Иногда при проверке значения переменной мы пишем длинную цепочку if-elif-else. Это выглядит громоздко и сложно читается.
С Python 3.10 можно использовать конструкцию match-case, которая делает код компактнее и читабельнее — особенно при работе со строками, числом или даже структурами данных.
🎯 Итог
match-case — это элегантная альтернатива if-elif-else в Python 3.10+. Подходит для ветвлений по значениям, в том числе с распаковкой. Пиши чище, читай легче!
Иногда при проверке значения переменной мы пишем длинную цепочку if-elif-else. Это выглядит громоздко и сложно читается.
С Python 3.10 можно использовать конструкцию match-case, которая делает код компактнее и читабельнее — особенно при работе со строками, числом или даже структурами данных.
🎯 Итог
match-case — это элегантная альтернатива if-elif-else в Python 3.10+. Подходит для ветвлений по значениям, в том числе с распаковкой. Пиши чище, читай легче!