Получаем количество строк, затронутых SQL-запросом
После выполнения SQL-запроса может потребоваться узнать, сколько строк было затронуто — например, при UPDATE или DELETE. Многие новички не знают, что Python позволяет легко получить это значение.
Используйте атрибут cursor.rowcount, чтобы сразу узнать, сколько строк было изменено или удалено.
Итог:
Разъяснивший Python
После выполнения SQL-запроса может потребоваться узнать, сколько строк было затронуто — например, при UPDATE или DELETE. Многие новички не знают, что Python позволяет легко получить это значение.
Используйте атрибут cursor.rowcount, чтобы сразу узнать, сколько строк было изменено или удалено.
Итог:
cursor.rowcount
позволяет получить количество строк, затронутых последним SQL-запросом — удобно для логирования, проверки и отладки.Разъяснивший Python
👍1
Безопасные SQL-запросы с параметрами
Новички часто вставляют значения прямо в SQL-строку, что может привести к SQL-инъекциям и ошибкам. В Python с библиотекой sqlite3 (и другими DB API) правильнее использовать параметры запроса.
Вместо конкатенации строк, используйте ? — это защитит вас от уязвимостей и избавит от лишнего форматирования.
Итог:
Используйте параметризованные запросы (? и кортеж) вместо подстановки значений вручную — это безопаснее и чище.
Разъяснивший Python
Новички часто вставляют значения прямо в SQL-строку, что может привести к SQL-инъекциям и ошибкам. В Python с библиотекой sqlite3 (и другими DB API) правильнее использовать параметры запроса.
Вместо конкатенации строк, используйте ? — это защитит вас от уязвимостей и избавит от лишнего форматирования.
Итог:
Используйте параметризованные запросы (? и кортеж) вместо подстановки значений вручную — это безопаснее и чище.
Разъяснивший Python
👍2
itertools для итерации более чем одного итерируемого объекта
Если вы когда-нибудь оказывались в ситуации, когда вы пишете вложенные циклы или сложные функции для итерации более чем одного итерируемого объекта, проверьте, есть ли нужная функция в библиотеке itertools.
Возможно, вам не придется изобретать велосипед — Python учтёт все ваши потребности.
🔗 Ссылочка на доку
Разъяснивший Python
Если вы когда-нибудь оказывались в ситуации, когда вы пишете вложенные циклы или сложные функции для итерации более чем одного итерируемого объекта, проверьте, есть ли нужная функция в библиотеке itertools.
Возможно, вам не придется изобретать велосипед — Python учтёт все ваши потребности.
🔗 Ссылочка на доку
Разъяснивший Python
partial — функция из модуля functools, которая используется для создания новой функции с некоторыми аргументами, которые уже заданы заранее.
На примере(см. выше) функция partial используется для создания новой функции с фиксированными значениями аргументов. Она принимает функцию и задает некоторые аргументы заранее, которые станут постоянными для создаваемой функции.
Это полезно, когда вы хотите создать функцию с некоторыми предустановленными аргументами
Разъяснивший Python
На примере(см. выше) функция partial используется для создания новой функции с фиксированными значениями аргументов. Она принимает функцию и задает некоторые аргументы заранее, которые станут постоянными для создаваемой функции.
Это полезно, когда вы хотите создать функцию с некоторыми предустановленными аргументами
Разъяснивший Python
Оптимизируем множественные вставки в БД
Когда нужно вставить много строк в базу данных, делать INSERT в цикле — медленно и неэффективно. Используйте
Итог:
Используйте
Разъяснивший Python
Когда нужно вставить много строк в базу данных, делать INSERT в цикле — медленно и неэффективно. Используйте
executemany()
— он вставляет все строки одним запросом, что значительно ускоряет выполнение.Итог:
Используйте
executemany()
для пакетной вставки данных — это быстрее и уменьшает нагрузку на базу.Разъяснивший Python
enumerate() — встроенная в Python функция, которая используется для итерации по последовательности одновременно с получением индекса и значения каждого элемента.
Синтаксис функции enumerate():
Разъяснивший Python
Синтаксис функции enumerate():
enumerate(sequence, start=1)
, где sequence - последовательность, по которой мы хотим производить итерацию (например, список, кортеж, строка и т.д.), а start (необязательный) - значение, с которого начинается индексирование. По умолчанию равно 0.Разъяснивший Python
setattr — функция, которая используется для установки значения атрибута объекта по его имени.
Синтаксис функции setattr():
• object - объект, для которого мы хотим установить атрибут.
• attribute_name - имя атрибута, который мы хотим установить.
• value - значение, которое мы хотим присвоить атрибуту.
Думаю, пример объяснять не надо. Если коротко: мы меняем артибут объекта Car :)
P.S. Если запрашиваемый атрибут не существует, то функция вернёт AttributeError, Необходимо обрабатывать это исключение.
Разъяснивший Python
Синтаксис функции setattr():
setattr(object, attribute_name, value)
• object - объект, для которого мы хотим установить атрибут.
• attribute_name - имя атрибута, который мы хотим установить.
• value - значение, которое мы хотим присвоить атрибуту.
Думаю, пример объяснять не надо. Если коротко: мы меняем артибут объекта Car :)
P.S. Если запрашиваемый атрибут не существует, то функция вернёт AttributeError, Необходимо обрабатывать это исключение.
Разъяснивший Python
Получаем количество строк без загрузки всех данных
Чтобы узнать, сколько строк вернёт запрос, не обязательно загружать все данные в память. Вместо SELECT * используйте SELECT COUNT(*) — это быстрее и экономит ресурсы.
Итог:
Используйте COUNT(*) для быстрой оценки количества записей — это эффективнее, чем вытягивать все строки и считать их вручную.
Разъяснивший Python
Чтобы узнать, сколько строк вернёт запрос, не обязательно загружать все данные в память. Вместо SELECT * используйте SELECT COUNT(*) — это быстрее и экономит ресурсы.
Итог:
Используйте COUNT(*) для быстрой оценки количества записей — это эффективнее, чем вытягивать все строки и считать их вручную.
Разъяснивший Python
👍1
pandas — модуль для анализа и обработки данных
Pandas высокоуровневые структуры данных, такие как DataFrame, для эффективной и удобной работы с табличными данными. Pandas позволяет считывать и записывать данные из различных источников, выполнять операции фильтрации, сортировки, группировки, объединения и агрегации данных. Он также предлагает широкий набор функций для обработки пропущенных значений, работы с датами и временем, визуализации данных и многое другое.
В примере(см. выше) мы создаем DataFrame с именами и возрастами персон. Затем мы выводим DataFrame на экран. Далее мы фильтруем данные, выбирая только персон с возрастом выше 30. И в конце мы выводим отфильтрованный DataFrame
Документация и примеры кода здесь
Разъяснивший Python
Pandas высокоуровневые структуры данных, такие как DataFrame, для эффективной и удобной работы с табличными данными. Pandas позволяет считывать и записывать данные из различных источников, выполнять операции фильтрации, сортировки, группировки, объединения и агрегации данных. Он также предлагает широкий набор функций для обработки пропущенных значений, работы с датами и временем, визуализации данных и многое другое.
В примере(см. выше) мы создаем DataFrame с именами и возрастами персон. Затем мы выводим DataFrame на экран. Далее мы фильтруем данные, выбирая только персон с возрастом выше 30. И в конце мы выводим отфильтрованный DataFrame
Документация и примеры кода здесь
Разъяснивший Python
getattr — функция, которая возвращает значение атрибута объекта с указанным именем
Если атрибут не существует, можно указать значение по умолчанию, которое будет возвращено вместо возбуждения исключения.
Синтаксис функции getattr:
• object - объект, у которого нужно получить атрибут.
• attribute_name - имя атрибута, значение которого нужно получить.
• default_value (необязательно) - значение по умолчанию, возвращаемое, если атрибут не существует.
На примере выше мы получаем атрибут "color" объекта Car(т.е. blue)
Разъяснивший Python
Если атрибут не существует, можно указать значение по умолчанию, которое будет возвращено вместо возбуждения исключения.
Синтаксис функции getattr:
getattr(object, attribute_name, default_value)
• object - объект, у которого нужно получить атрибут.
• attribute_name - имя атрибута, значение которого нужно получить.
• default_value (необязательно) - значение по умолчанию, возвращаемое, если атрибут не существует.
На примере выше мы получаем атрибут "color" объекта Car(т.е. blue)
Разъяснивший Python
👍1
PaddleOCR для оптического распознавания символов
PaddleOCR — многоязычные наборы инструментов OCR на основе DL-фреймворка PaddlePaddle.
Поддержка обучения и развертывания на серверных, мобильных, встроенных устройствах и IoT
Ссылочка на доку
Разъяснивший Python
PaddleOCR — многоязычные наборы инструментов OCR на основе DL-фреймворка PaddlePaddle.
Поддержка обучения и развертывания на серверных, мобильных, встроенных устройствах и IoT
Ссылочка на доку
Разъяснивший Python
❤1
Безопасные SQL-запросы через параметризованные запросы
Новички часто подставляют значения в SQL-запрос через f-строки или конкатенацию, что может привести к SQL-инъекциям. Вместо этого используйте параметризованные запросы — это безопасно и правильно.
Итог:
Всегда используйте параметризованные запросы для защиты от SQL-инъекций. Это безопаснее и чище, чем вручную подставлять значения в строки.
Разъяснивший Python
Новички часто подставляют значения в SQL-запрос через f-строки или конкатенацию, что может привести к SQL-инъекциям. Вместо этого используйте параметризованные запросы — это безопасно и правильно.
Итог:
Всегда используйте параметризованные запросы для защиты от SQL-инъекций. Это безопаснее и чище, чем вручную подставлять значения в строки.
Разъяснивший Python
Форматирование чисел с плавающей точкой.
Чтобы избежать e-число в числе с плавающей точкой — можно воспользоваться форматированием f-строк.
Синтаксис форматирования чисел с плавающей точкой
f"{число:.n}", где число - значение, которое мы хотим отформатировать, а n - количество знаков после запятой(вы также можете указать значение 0, что уберёт числа после запятой).
На примере(см. выше) получим цену SHIB, а зачем вывел e-число. Чтобы не показывать конечному пользователю некрасивое e-число, затем воспользуемся форматированием
Разъяснивший Python
Чтобы избежать e-число в числе с плавающей точкой — можно воспользоваться форматированием f-строк.
Синтаксис форматирования чисел с плавающей точкой
f"{число:.n}", где число - значение, которое мы хотим отформатировать, а n - количество знаков после запятой(вы также можете указать значение 0, что уберёт числа после запятой).
На примере(см. выше) получим цену SHIB, а зачем вывел e-число. Чтобы не показывать конечному пользователю некрасивое e-число, затем воспользуемся форматированием
Разъяснивший Python
DeepChem
DeepChem — это библиотека Python с открытым исходным кодом, которая использует методы глубокого обучения для решения задач в области химии, биологии и материаловедения.
DeepChem позволяет прогнозировать различные свойства молекул, такие как их активность, растворимость, токсичность и т.д., используя методы машинного обучения.
Также библиотека может использоваться для быстрого и эффективного поиска потенциальных лекарственных средств из больших библиотек соединений.
DeepChem может генерировать новые молекулы с заданными свойствами, что может быть полезно для разработки новых материалов и лекарств.
Разъяснивший Python
DeepChem — это библиотека Python с открытым исходным кодом, которая использует методы глубокого обучения для решения задач в области химии, биологии и материаловедения.
DeepChem позволяет прогнозировать различные свойства молекул, такие как их активность, растворимость, токсичность и т.д., используя методы машинного обучения.
Также библиотека может использоваться для быстрого и эффективного поиска потенциальных лекарственных средств из больших библиотек соединений.
DeepChem может генерировать новые молекулы с заданными свойствами, что может быть полезно для разработки новых материалов и лекарств.
Разъяснивший Python
Отслеживание спутников в реальном времени
В этот раз мы сделаем приложение, которое позволит отслеживать спутники. Мы подключимся к открытому API с орбитальными данными, затем получим информацию о положении спутников, и в результате отобразим движение спутников на карте Земли.
Код каждые 0 секунд запрашивает у сервера NASA актуальные координаты МКС. После этого он перерисовывает карту Земли с новым положением станции. При желании ты можешь расширить проект: сделать 3D-визуализацию, либо добавить траекторию движения.
Ссылка на код
Разъяснивший Python
В этот раз мы сделаем приложение, которое позволит отслеживать спутники. Мы подключимся к открытому API с орбитальными данными, затем получим информацию о положении спутников, и в результате отобразим движение спутников на карте Земли.
Код каждые 0 секунд запрашивает у сервера NASA актуальные координаты МКС. После этого он перерисовывает карту Земли с новым положением станции. При желании ты можешь расширить проект: сделать 3D-визуализацию, либо добавить траекторию движения.
Ссылка на код
Разъяснивший Python
pydub — модуль для обработки аудиофайлов.
pydub предоставляет удобные инструменты для работы с аудиофайлами, такими как чтение, запись, объединение, нарезка, изменение громкости и многое другое. Она основана на библиотеке ffmpeg и позволяет легко выполнять различные операции с аудио в форматах WAV, MP3 и других
На примере(см. выше) мы использовали метод "from_wav" для чтения двух файлов, создали новую переменную объединив оба файла, а затем экспортировали его
Ставится командой
Разъяснивший Python
pydub предоставляет удобные инструменты для работы с аудиофайлами, такими как чтение, запись, объединение, нарезка, изменение громкости и многое другое. Она основана на библиотеке ffmpeg и позволяет легко выполнять различные операции с аудио в форматах WAV, MP3 и других
На примере(см. выше) мы использовали метод "from_wav" для чтения двух файлов, создали новую переменную объединив оба файла, а затем экспортировали его
Ставится командой
⚙️ pip install pydub
Документация и примеры кода здесь Разъяснивший Python
Используем параметризованные запросы для защиты от SQL-инъекций
Новички часто подставляют значения в SQL-запросы через f-строки или конкатенацию, что может привести к уязвимостям. Вместо этого лучше использовать параметризованные запросы, которые автоматически экранируют значения и защищают от SQL-инъекций.
Итог:
Параметризованные запросы не только безопаснее, но и делают код чище. Никогда не вставляй переменные напрямую в SQL — используй placeholder'ы (? или %s), и передавай значения отдельно.
Разъяснивший Python
Новички часто подставляют значения в SQL-запросы через f-строки или конкатенацию, что может привести к уязвимостям. Вместо этого лучше использовать параметризованные запросы, которые автоматически экранируют значения и защищают от SQL-инъекций.
Итог:
Параметризованные запросы не только безопаснее, но и делают код чище. Никогда не вставляй переменные напрямую в SQL — используй placeholder'ы (? или %s), и передавай значения отдельно.
Разъяснивший Python
Игра “Угадай, что я думаю”
Сделаем простую игру. Пользователь загадывает число или слово, а компьютер пытается с помощью вопросов угадать, что загадал игрок. Все будет работать прямо в консоли.
В качестве примера реализуем угадывание чисел от 1 до 100. Компьютер делает предположения, а игрок отвечает “больше”, “меньше” или угадал. По сути, это классический бинарный поиск. При желании ты можешь добавить поддержку угадывания слов, либо же инвертировать роли.
Ссылка на код
Разъяснивший Python
Сделаем простую игру. Пользователь загадывает число или слово, а компьютер пытается с помощью вопросов угадать, что загадал игрок. Все будет работать прямо в консоли.
В качестве примера реализуем угадывание чисел от 1 до 100. Компьютер делает предположения, а игрок отвечает “больше”, “меньше” или угадал. По сути, это классический бинарный поиск. При желании ты можешь добавить поддержку угадывания слов, либо же инвертировать роли.
Ссылка на код
Разъяснивший Python
Используем контекстный менеджер для безопасной работы с БД
Многие новички забывают закрывать соединения с базой данных, что может привести к утечкам ресурсов и блокировкам. Контекстный менеджер (with) упрощает работу с базой и автоматически закрывает соединение даже при ошибках.
Итог:
Используй with при работе с базой данных — это гарантирует автоматическое закрытие соединения и делает код надёжнее и чище.
Разъяснивший Python
Многие новички забывают закрывать соединения с базой данных, что может привести к утечкам ресурсов и блокировкам. Контекстный менеджер (with) упрощает работу с базой и автоматически закрывает соединение даже при ошибках.
Итог:
Используй with при работе с базой данных — это гарантирует автоматическое закрытие соединения и делает код надёжнее и чище.
Разъяснивший Python