Python/ django
60.9K subscribers
2.13K photos
82 videos
48 files
2.86K links
по всем вопросам @haarrp

@itchannels_telegram - 🔥 все ит-каналы

@ai_machinelearning_big_data -ML

@ArtificialIntelligencedl -AI

@datascienceiot - 📚

@pythonlbooks

РКН: clck.ru/3FmxmM
加入频道
🖥 Полезный приём при работе с исключениями в Python

def divide(x=1, y=0):
try:
return x / y
except ZeroDivisionError:
raise ValueError("Pattern 3 error.") from None

divide()

Здесь при вызове функции divide() она вызывается с параметрами по умолчанию, то есть x=1, y=0, в общем происходит деление на 0, и мы попадаем в ветку except ZeroDivisionError.

Если бы мы не написали from None, в поднявшемся исключении встречалась бы ошибка ZeroDivisionError.
В данном случае трассировка не будет включать исходную ошибку ZeroDivisionError, а только исключение ValueError и сообщение об ошибке — всё из-за from None.

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

Вот такие дела

@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31🔥73😱1
🖥 Flect is a Python framework for building full-stack web applications.

Flect — это фреймворк Python для создания полнофункциональных веб-приложений.

Он позволяет легко создавать пользовательские интерфейсы, используя модели Pydantic, которые аналогичны свойствам компонентов React.

Эта интеграция позволяет быстро разрабатывать интерактивные и красивые пользовательские интерфейсы с использованием Python.

Github
Docs

@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍24🔥75😱4
Как правильно подставлять значения из переменных / списков / словарей в SQL запрос в Python?

Лучше всего использовать SQL запросы с использованием параметров:
cursor.execute("SELECT * FROM my_table WHERE id = ?", [123])
# parameter placeholder ------------------------> ^
# список/кортеж со значениями параметров -----------> ^^^^^


Какие преимущества приносит использование параметров?
Защита от SQL-инъекций

Правильное квотирование литералов в зависимости от их типа (пример со строками, пример с датами).

Оптимизация — сокращение времени работы SQL запроса. Благодаря использованию параметров следующие шаги не выполняются при повторном запуске (зависит от БД):
— проверка синтаксиса SQL запроса
— проверка прав доступа к объектам БД
— построение плана выполнения SQL запроса

Защита от переполнения/вытеснения кеша SQL запросов. Например "безобидный" запрос qry = f"SELECT first_name, last_name FROM users WHERE id = {user_id}", который часто выполняется в нагруженной системе с различными значениями user_id может вытеснить из кеша запросов полезные запросы.

Пример использования параметров в SQL запросе:
import sqlite3

con = sqlite3.connect(":memory:")
cur = con.cursor()
cur.execute("create table lang (name, first_appeared)")

cur.execute("insert into lang values (?, ?)", ("C", 1972))

lang_list = [
("Fortran", 1957),
("Python", 1991),
("Go", 2009),
]
cur.executemany("insert into lang values (?, ?)", lang_list)

cur.execute("select * from lang where first_appeared=:year", {"year": 1972})
print(cur.fetchall())

con.close()

При таком подходе можно использовать cursor.executemany() - это значительно быстрее и эффективнее по сравнению с вставкой в цикле по одной строке.

📎 Читать подробнее

@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
👍124🔥2😁1
🖥 Awesome-Web-Scraping

Список куртых инструментов, библиотек и веб-сервисов, используемых при парсинге и обработке данных.

Github

@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥32
🖥 Полезная статья по алгоритмам и структурам данных 🔥

В статье описаны такие структуры данных как:
— Массив (Array)
— Динамический массив (Dynamic array)
— Связный список (Linked list)
— Стек (Stack)
— Очередь (Queue)
— Множество (Set)
— Карта (Map)
— Двоичное дерево поиска (Binary search tree)
— Префиксное дерево (Trie)
— Граф (Graph)

Параллельно рассказывается про самые популярные алгоритмы и ещё много всего)

📎 Ссылка на статью
📎 Ещё статья в тему на русском

@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2410🔥5
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 5 полезных расширений VScode для работы с документацией Python и не только 🌟

Draw.io Integration
Хорошо подходит для работы со сложными диаграммами: сперва можно создать диаграмму в десктопной версии Draw.io, а потом доработать ее в VScode с помощью расширения Draw.io Integration.

Quarto
Quarto — крутая штука для работы с документацией под R, Python, Julia и Observable. Расширение Quarto для VScode поможет редактировать и рендерить QMD-файлы. В нем есть режим предварительного просмотра, который позволяет менять код документа и одновременно просматривать результат.

Jupyter
Jupyter — один из самых популярных фреймворков для создания заметок, особенно в Python. Кстати, Jupyter классно работает вместе с документацией Quarto для Python. Расширение VScode Jupyter интегрирует заметки Jupyter в редактор VScode и поддерживает ipynb-файлы.

Markdown All in One
С расширением Markdown All in One удобно редактировать документацию в формате Markdown. Оно располагает два окна рядом: редактор кода и тут же результат.

Mermaid
Mermaid особенно полезен, если вам нужно создать структуру кодовой базы или динамическую диаграмму. В VScode есть два расширения для работы с файлами Mermaid — Mermaid Preview и Markdown Preview Mermaid Support.

@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
👍123🔥3
🔥 Совет по Python: Распаковка с помощью iterables!

Знаете ли вы, что "распаковка" работает со всеми видами iterable (т.е. не только со списками или кортежами), делая ваш код короче и элегантнее. 🚀

Этот небольшой фрагмент кода / хитрость позволяет вам легко захватывать ключи или элементы. 🐍

#Python #tips

@pythonl
11👍6🔥4
🖥 Развивающийся интерпретатор RustPython

🔥 Относительно недавно стал доступен выпуск проекта RustPython 0.3, развивающего интерпретатор языка программирования Python, написанный на языке Rust. RustPython нацелен на обеспечение совместимости с CPython 3.11 и более новыми выпусками.

Проект основал Shing Lyu, один из разработчиков движка Servo и участник перевода CSS-движка Firefox на компоненты, написанные на языке Rust. Для оценки текущего состояния разработки можно использовать web-интерфейс с интерпретатором RustPython, скомпилированным в WebAssembly. Код распространяется под лицензией MIT.

RustPython состоит из парсера кода на Python в абстрактное синтаксическое дерево (AST), компилятора AST в байткод и виртуальной машины для выполнения байткода. Для ускорения выполнения предоставляется начальная реализация JIT-компилятора, преобразующего python-функции в машинный код. Поддерживается компиляция RustPython в форму универсального WASI-модуля на WebAssembly, который может запускаться в различных операционных системах.

Проектом также предоставляются средства для интеграции кода на языке Python в проекты на языке Rust, без применения биндингов на основе CPython - RustPython позволяет встраивать Python-конструкции непосредственно в код на языке Rust и использовать Python в качестве языка скриптинга в приложениях.

▶️Из проектов, уже использующих RustPython, отмечаются СУБД GreptimeDB, игровой движок pyckitup, игра Robot Rumble и linter Ruff.

🖥 GitHub

@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥73
🔥 Полезная подборка для Python разработчиков.

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

Где изучать Python в 2024. Бесплатные курсы, книги и ресурсы
Видео

100 вопросов для подготовки к собесу Python
Вопросы Middle
Видео

100 вопросов для подготовки к собесу Data Science
Видео

Вливаемся в Data Science: подробный roadmap что и где изучать

Machine Learning инженер: что/где/как изучать, чтобы въехать

Моя большая практическая шпаргалка SQL (SQLite) с готовыми запросами

Шпаргалка для алгособеса — алгоритмическая сложность, структуры данных, методы сортировки и Дейкстра

Шпаргалка для алгособеса 2 — графовые и строковые алгоритмы

40 Полезных инструментов Дата Саентиста

Go — 100 вопросов/заданий с собеседований
Видео

Где изучать Linux в 2024. Бесплатные курсы, книги и ресурсы
Видео

Бесплатные курсы для изучения искусственного интеллекта в 2024 году

NumPy: оттачивайте навыки Data Science на практике
Numpy полный бесплатный курс


Где искать работу Дата Саентисту в 2024 году

Ресурсы для поиска работы Python разработчикам

Бесплатные курсы по большим языковым моделям для дата-сайентистов

@pythonl
👍6🔥41
🖥 Полезная статья по классам и объектам в Python

В этой статье очень подробно описывается работа с объектами и классами в Python, рассказывается о таких вещах как:
— конструкторы
— атрибуты объекта
— методы классов
— деструкторы

В целом, очень полезно, рекомендую)

📎 Статья

@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22🔥42
🖥 Полезное руководство о #! в Python

🟡Когда вы читаете чужой Python код, то часто видите загадочную строку, которая всегда появляется вверху файла и начинается с характерной последовательности shebang #!.

🟡Короче говоря, shebang — это комментарий особого типа, который вы можете включать в исходный код, чтобы указать оболочке операционной системы, где найти интерпретатор для остальной части файла:
#!/usr/bin/python3

print("Hello, World!")


🟡Если вы используете shebang, он должен размещаться в первой строке вашего скрипта и должен начинаться со знака решётки #, за которым следует восклицательный знак !, известный как bang, отсюда и название shebang.

🟡Shebang имеет отношение только к исполняемым сценариям, которые вы хотите выполнять без явного указания программы для их запуска. Обычно вы не помещаете shebang в модуль Python, который содержит только определении функций и классов, предназначенные для импорта из других модулей. Поэтому используйте shebang, если вы не хотите ставить перед командой, которая запускает ваш скрипт Python, префикс python или python3.

📎 Читать подробнее

@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
15🔥9