52807
по всем вопросам @haarrp @itchannels_telegram - 🔥 best it channels @ai_machinelearning_big_data -ML @ArtificialIntelligencedl -AI @datascienceiot - ml 📚 @pythonlbooks -📚books
Как правильно подставлять значения из переменных / списков / словарей в SQL запрос в Python?
⏩Лучше всего использовать SQL запросы с использованием параметров:
cursor.execute("SELECT * FROM my_table WHERE id = ?", [123])
# parameter placeholder ------------------------> ^
# список/кортеж со значениями параметров -----------> ^^^^^qry = f"SELECT first_name, last_name FROM users WHERE id = {user_id}", который часто выполняется в нагруженной системе с различными значениями user_id может вытеснить из кеша запросов полезные запросы. 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() - это значительно быстрее и эффективнее по сравнению с вставкой в цикле по одной строке.
🖥 Flect is a Python framework for building full-stack web applications.
Flect — это фреймворк Python для создания полнофункциональных веб-приложений.
Он позволяет легко создавать пользовательские интерфейсы, используя модели Pydantic, которые аналогичны свойствам компонентов React.
Эта интеграция позволяет быстро разрабатывать интерактивные и красивые пользовательские интерфейсы с использованием Python.
▪ Github
▪ Docs
@pythonl
🖥 Полезный приём при работе с исключениями в 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, когда вы хотите скрыть от пользователя детали исходного исключения или внутреннее исключение используемой библиотеки.
🖥 Python: когда использовать array вместо list?
⏩Если в двух словах, то для хранения элементов разных типов, предпочтительнее использовать list, а для быстрых операций с числовыми данными и эффективного расходования памяти – array из модуля array.
⏩Список в Python – это универсальный инструмент, способный хранить элементы разных типов и эффективно управлять памятью, что особенно ценно при изменении размера списка.
Используйте списки, когда:
— Вам необходимо хранить элементы разного типа.
— Предполагается изменение объема данных.
— Важны удобство и простота поддержки кода.
⏩Массивы: когда приветствуется оптимизация при работе с числами
Массивы предназначены для высокопроизводительной работы с большими массивами однородных данных, особенно числовых.
Выбирайте массивы, когда:
— Вы работаете исключительно с числами одного типа.
— Обрабатываете большие объемы данных и важна экономия памяти.
— Нужна тесная интеграция с C-кодом.
@pythonl
🖥 Language Detection using Python
Определение языка с помощью Python.
@pythonl
🚀 GPM AdTech Challenge
от «Газпром-Медиа» и Getintent
Когда: 18-30 марта
Формат: гибридный
Призовой фонд: 1 000 000 рублей
Ты можешь стать победителем независимо от своего технического бэкграунда. Выбирай один из трех треков, создавай прототип и выигрывай 1 000 000 рублей.
Регистрация до 13 марта: https://cnrlink.com/gpmpython
🎙 Frontend Мeetup от Росбанка
Когда: 22 марта
Формат: очный, Казань
Вас ждут доклады специалистов Росбанка, СберМаркета и VK Добра.
Авторы лучших вопросов получат мерч.
Регистрация до 18 марта: https://cnrlink.com/rbkazanpython
💢 «Халява, приди!» от Codenrock
Когда: весь март
Формат: онлайн
Реши несложные, но увлекательные задачи по программированию и получи возможность стать обладателем промокода на любой маркетплейс. Это ли не халява?
Регистрация до 20 марта: https://cnrlink.com/halyavapython
Реклама. ООО "ЦУКЕР СТУДИЯ". ИНН 7751071015. erid: LjN8JyexX
🔥Подборка лучших обучающих каналов для программистов.
➡️ Делитесь с коллегами и cохраняйте себе, чтобы не потерять
🚀 Data Science
Анализ данных - полезные фишки, код, гайды и советы, маст-хэв датасаентиста
Data Jobs - ds вакансии
Аналитик данных
Data Science книги - актуальные бесплатные книги
Big data
#️⃣C#
С# академия
С# заметки — код, лучшие практики, заметки программиста c#
С# задачи и тесты
С# библиотека - актуальные бесплатные книги
C# вакансии - работа
⚡Машинное обучение
Ml Собеседование - подготовка к собеседовению мл, алгоритмам, кодингу
Ml ru - актуальные статьи, новости, код и обучающие материалы
Ml Jobs - вакансии ML
ML Книги - актуальные бесплатные книги МО
ML чат
Machine Learning - полезные статьи новости гайды и разбор кода
⚡️ Frontend
Javascript академия - крупнейший js канал
React - лучшие гайды и советы по работе с react
Frontend - тутрориалы, уроки, гайды, код
PHP
Книги frontend
Задачи frontend
🏆 Golang
Golang - подробные гайды, разбор кода, лучшие практики, заметки
Golang собеседование
Golang вакансии
Golang книги
Golang задачи и тесты
Golang чат
Golang news - новости go
🐍 Python
Python/django
Python Собеседование - подготовка к собеседовению python и разбор алгоритмов
Pro python - статьи, новости, код и обучающие материалы
Python Jobs - вакансии Python
Python чат
Python книги
☕ Java
Java академия
Java вакансии
Java чат
Java вопросы с собеседований
Java книги
🛢Базы данных
Sql базы данных
Библиотека баз данных
SQL чат
💻 C++
C++ академия
С++ книги
C++ задачи - подготовка к собеседовению мл, алгоритмам
C++ вакансии
💥 Хакинг Kali Linux
Kali linux
linux_kal - kali чат
Информационная безопасность
🐧 Linux
Linux academy
🦀 Rust
Rust программирование
Rust чат
Rust книги для программистов
📲 Мобильная разработка
Android разработка
Мобильный разработчик гайды и уроки
🇬🇧 Английский для программистов
🧠 Искусственный интеллект
ИИ и технологии
Neural - нейросети для работы и жизни
Книги ИИ
Artificial Intelligence
🔥 DevOPs
Devops для программистов
Книги Devops
🌟 Docker/Kubernets
Docker
Kubernets
📓 Книги
Библиотеки Книг для программситов
💼 Папка с вакансиями:
Папка Go разработчика:
Папка Python разработчика:
Папка Data Science
Папка Java разработчика
Папка C#
Папка Frontend
🖥 Получение мостов tor из GMail с помощью Python
Учите Python, он везде)
1 шаг — установка внешних библиотекpip install python-decouple opencv-python pyzbar IMAPClientdecouple — для чтения данных из файлаopencv — для чтения изображения с QR-кодом pyzbar — чтобы прочитать данные, закодированные в QR-кодеIMAPClient — с помощью неё будем работать с сообщениями на почтовом сервере
Так как мы будем использовать пароль приложений, а также логин от аккаунта Google, то в коде его желательно не использовать. Поэтому, необходимо создать файл «.env» с примерным содержимым:
login = "test@gmail.com"
pwd = "gffg sbbp jccj vhhi"
🖥 Как расширить возможности стандартного Enum
Иногда хочется, чтобы у констант были доп. параметры, хранящие прочие характеристики. Первое, что приходит на ум — это описать Enum, хранящий простые значения, и маппинг:
from dataclasses import dataclass
from enum import Enum
class Color(Enum):
BLACK = 'black'
WHITE = 'white'
PURPLE = 'purple'
@dataclass(frozen=True)
class RGB:
red: int
green: int
blue: int
COLOR_TO_RGB = {
Color.BLACK: RGB(0, 0, 0),
Color.WHITE: RGB(255, 255, 255),
Color.PURPLE: RGB(128, 0, 128),
}
Color, никто не обновит маппинг, т.к. нет жёсткой и явной связи.tuple, то значит получится и с typing.NamedTuple. К тому же будут именованные параметры, что повысит читабельность.typing.NamedTuple. Теперь чтобы у нас происходило корректное сравнение объектов нам нужно переопределить методы __hash__ и __eq__. Сравниваться объекты будут по одному полю — value.typing.NamedTuple использовать dataclass? Вроде идея здравая. Появляется возможность наследования классов, хранящих доп. параметры. Плюс вспомогательные функции из dataclasses.dataclass.
😎Разработчик, управляй памятью эффективно!
👉Начните на бесплатном вебинаре онлайн-курса «Программист С» — «Реализация динамических структур данных на Си и Python»: регистрация
Структура вебинара:
- Примеры динамических структур данных
- Схемы управления динамической памятью в С и Python
- Реализация бинарного дерева на С и Python
- Применение функций управления динамической памятью.
Вебинар будет полезен:
- Программистам, изучающим языки С и Python, для развития навыков в области эффективного управления памятью.
- Разработчикам в области больших данных.
🤝Понравится вебинар — продолжите обучение на курсе по специальной цене и даже в рассрочку!
Почему стоит зарегистрироваться на GitVerse?
Разработчикам теперь доступна GitVerse – новая российская платформа от СберТеха для работы с исходным кодом.
Сервис позволяет бесплатно создавать проекты с открытым и закрытым кодом, приглашать новых участников и общаться с единомышленниками в ИТ-сообществе.
- Привлекайте соавторов для разработки и развития своего проекта с открытым исходным кодом.
- Разрешайте вносить изменения в репозиторий, получайте запросы на слияние и объединяйте ветки.
- Проверяйте и комментируйте код, объединяйте изменения.
- Оптимизируйте рабочий процесс: назначайте ответственных за ревью и отслеживайте результат.
- Переносите репозитории с других платформ и храните код в надежном месте.
Переходите на новый уровень разработки с GitVerse.
Зарегистрируйтесь и начните совместную работу над проектом уже сейчас.
🖥 Latexify: Generates LaTeX math description from Python functions.
Крутая библиотека Python, которая позволяет отображать функции в формате LaTeXpip install latexify
То есть вы просто определяете функцию как обычно, например так:
def quadratic(a,b,c):
return (-b + math.sqrt(b**2 - 4*a*c)) / (2*a)
@latexify.function и печатаем имя функции quadratic в ячейке Google Colab. @latexify.function
def quadratic(a,b,c):
return (-b + math.sqrt(b**2 - 4*a*c)) / (2*a)
quadratic
⁉️ Ты не хочешь карьерного роста в IT?
Иначе почему ты все еще остаешься на среднем уровне в разработке? Когда всего за 5 месяцев можно освоить широкий стек технологий на онлайн-курсе «Python Developer. Professional» и вырасти в доходе и должности.
⬇️ Пройди тест по Python и проверь свои знания.
Ответишь — пройдешь на продвинутый курс "Python Developer. Professional" от OTUS по специальной цене/
🔥 Выбери светлую сторону силы и приходи на курс.
Программа бакалавриата в Центральном университете от Тинькофф с грантом до 100% для сильных и мотивированных абитуриентов!
Грант можно получить на одно из направлений бакалавриата по искусственному интеллекту, разработке и бизнес-аналитике. Помимо диплома и практико-ориентированного образования студенты получат:
Персонализацию учебной траектории;
Стажировку в одной из лучших ИТ-компании страны;
Личного ментора на все время обучения;
Доступ к современному кампусу в центре Москвы.
Получить полную информацию и оставить заявку можно здесь.
erid:2Vtzqw8FfJH
Реклама. АО "Тинькофф Банк", ИНН 7710140679, лицензия ЦБ РФ № 2673
Бывают задачи, когда нужно автоматизировать сбор и анализ данных из разных источников.
Этот процесс называют парсингом и его легко реализовать на Python. В карточках рассказываем, что для этого нужно ➡️
Подписывайтесь на телеграм-канал @Selectel, чтобы не пропускать новые материалы и подборки 🏢
⁉️ Как эффективно работать с паттернами микросервисной архитектуры в Python?
Узнайте на бесплатном практическом уроке от OTUS, где вы вместе с опытным экспертом:
- разберете наиболее популярные паттерны: оркестрация и хореография;
- рассмотрите реализацию этих подходов, обсудите плюсы и минусы;
- ответите на все возникающие вопросы.
📢 Занятие пройдёт 14 марта в 20:00 мск и будет приурочено к старту курса «Python Developer. Professional». Доступна рассрочка на обучение!
➡️ Пройдите короткий тест прямо сейчас, чтобы занять место на открытом уроке и получить запись:
Инвесторы смогут тестировать и запускать собственных торговых роботов на уникальных данных
MoexAlgo — Python-библиотека для упрощения работы с Алгопак API. Предоставляет данные и аналитику по рынку акций Московской биржи (MOEX). Можно получать:
• исторические данные для тестирования торговых стратегий, проверки гипотез и backtest;
• онлайн-данные для алгоритмической торговли.
Библиотека необходима для работы с демоверсией Алгопак — новым инструментом Московской биржи. Благодаря ему вы можете прокачать свои навыки работы через REST API и Python-клиент. Клиенты получают доступ к большому набору исторических и онлайн-данных по рынку акций MOEX и могут проводить backtest различных торговых стратегий, а также создавать и автоматизировать торговые алгоритмы.
▪️ MoexAlgo
▪️ Backtrader_moexalgo
▪️ Демоверсия Алгопак доступна всем зарегистрированным пользователям сайта ПАО Московская Биржа — тестируйте на сайте
@pythonl
Реклама. Рекламодатель ПАО Московская биржа. ОГРН (1027739387411)
🖥 Помнишь эти методы списков в Python?
Держи, вот полезная шпаргалка, чтобы освежить их
📎 А вот ещё годный сайт, где собраны самые используемые методы/функции Python
@pythonl
⁉️ Готов стать профи в разработке на Python?- или будешь довольствоваться средним уровнем?
Всего за 5 месяцев можно освоить широкий стек технологий на онлайн-курсе «Python Developer. Professional» и вырасти в доходе и должности.
➡️ Пройди тест по Python и проверь свои знания.
Ответишь — пройдешь на продвинутый курс "Python Developer. Professional" от OTUS по специальной цене
🔥 Выбери светлую сторону силы и приходи на курс.
🔤Вопрос: как работает распаковка (*) в Python?
Что происходит, скажем, в случае такого генераторного выражения?
gen = (num for num in range(10))
print(*gen)
*args и **kwargs — это способы передачи переменного количества аргументов в функцию. Другими словами, они "распаковывают" значения из массива/словаря/множества и т.п. и передают эти значения в функцию.def test(a, b): # Принимаем параметры a и b
print(a + b) # Выводим их сложение
array = [1, 2] # Создаём массив из двух чисел
test(*array) # Вывод: 3
*array значения для функции были преобразованы в test(1, 2)**kwargs:def test(a,b): # Принимаем параметры a и b
print(a + b) # Выводим их сложение
dct = {'a':1, 'b':2} # Создаём словарь и записываем ключ-значение
test(**dct) # Вывод: 3
**dct значения для функции были преобразованы в test(a=1, b=2)def test1(*var): # Принимаем параметры в виде множества
print(var)
test1(1, 2, 3) # Вывод: (1, 2, 3)
def test2(**var): # Принимаем параметры в виде словаря
print(var)
test2(a=1, b=2) # Вывод: {'a': 1, 'b': 2}
🖥 Hotpdf: a fast PDF parsing library to extract text and find text within PDF
hot pdf - это библиотека быстрого анализа PDF-файлов для извлечения текста и поиска текста в PDF-документах, созданная поверх pdfminer.sixpip install hotpdf
▪ Github
@pythonl
🌷 Happy Women's day!
Выводим поздравление с 8 марта.
@pythonl
🖥 `__init_subclass__` runs when your class is subclassed.
Если вы хотите получать уведомление, когда класс Python 🐍 становится подклассом.
Используйте: `__init_subclass__`.
Он запускается, когда ваш класс становится подклассом. 🚀
@pythonl
🖥 Довольно полезная либа для структурированных выводов для LLM - Instructor 🔥
⭐️Работает на API вызова функций OpenAI, разработанном для простоты и прозрачности
Метод instructor.patch() для класса OpenAI вводит несколько ключевых полезных вещей:
🟡Режим ответа: Укажите модель Pydantic, чтобы упростить извлечение выходных данных.
🟡Максимальное количество повторных попыток: Установите желаемое количество повторных попыток для запросов.
🟡Контекст валидации: Предоставьте объект контекста для расширенного доступа к валидатору.
🟡Используйте метод client.chat.completions.create для отправки запроса и извлечения данных в объект Pydantic. Параметр response_model указывает модель Pydantic, которую следует использовать для извлечения. Полезно аннотировать переменную типом модели ответа, что поможет вашей IDE обеспечить автозаполнение и проверку орфографии.
https://pypi.org/project/instructor/
@pythonl
🖥 You can use #Python and #Textual to create plots in your terminal? 🐍🔥
Знаете ли вы, что вы можете использовать #Python и #Textual для создания графиков в вашем терминале? 🐍 🔥
Это супер просто! Пример на картинке.
@pythonl
⚡️ UV: An extremely fast Python package installer and resolver, written in Rust.
Новейший инструмент для работы с зависимостями в Python
Создатели позиционируют его как замену pip, pip-tools и virtualenv, инстурмент написан на Rust.
На картинке вы видите сравнение uv с другими инструментами в разрешении зависимостей (слева) и установке (справа) зависимостей Trio с использованием прогретого кеша.
▪О проекте
▪GitHub
▪Docs
@pythonl
🖥 Build a typing assistant with Mistral 7B and Ollama - Python Tutorial
Невероятно — локальный AI чат-бот на основе Ollama и Mistral 7B всего в сотню строк Python кода (!)
💻 Туториал
🖥 GitHub
@pythonl
🖥 A little word cloud generator in Python
Создание облака слов на основе файла 'cl.txt'
Особенно полезно для задач NLP или при анализе соцсетей
from wordcloud import WordCloud
import matplotlib.pyplot as plt
# Read text from a file
with open('cl.txt', 'r', encoding='utf-8') as file:
text = file.read()
# Generate word cloud
wordcloud = WordCloud(width=800, height=400, background_color='white').generate(text)
# Display the generated word cloud using matplotlib
plt.figure(figsize=(10, 5))
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.show()
pip install wordcloud
🖥 Нереально полезные встроенные библиотеки Python
🔜Tempfile
Создаёт временный файл как папка tmp в linux:
import tempfile
with tempfile.NamedTemporaryFile() as tmp:
print(tmp.name)
tmp.write(...)
from io import BytesIO
imagefile = BytesIO()
animage.save(imagefile, format='PNG')
imagedata = imagefile.getvalue()
>> from struct import *
>> pack(">bhl", 1, 2, 3)
b'\x01\x00\x02\x00\x00\x00\x03'
>> unpack('>bhl', b'\x01\x00\x02\x00\x00\x00\x03')
(1, 2, 3)
>> calcsize('>bhl')
7
Welcome to the turtle shell. Type help or ? to list commands.
(turtle) ?
Documented commands (type help <topic>):
========================================
bye color goto home playback record right
circle forward heading left position reset undo
(turtle) help forward
Move the turtle forward by the specified distance: FORWARD 10
(turtle) record spiral.cmd
(turtle) position
Current position is 0 0
pip.
🔥 В карточках кратко рассказали, как парсить данные веб-сайтов с помощью Python. Пособие подойдет новичкам и продолжающим — сохраняйте пост в закладки и переходите на телеграм-канал @Selectel. Там ребята каждый день публикуют полезные материалы для тех, кто интересуется IT.
Читать полностью…