Pythoner
Ir al canal en Telegram
Полезные материалы по Python, которые будут интересны опытному и начинающему разработчику. Сотрудничество - @flattys Цены - @serpent_media Канал на бирже: https://telega.in/c/pythonercode
Mostrar más6 798
Suscriptores
+124 horas
-97 días
-3830 días
Archivo de publicaciones
6 798
🔥 6895 ГБ платного контента для программистов выложили в Telegram
Тонны курсов, уроков и видео теперь в открытом доступе:
🖥 Python — 724 ГБ
🖥 Frontend — 981 ГБ
🖥 Backend — 817 ГБ
👩💻 Все языки — 4373 ГБ
Успей подать заявку, пока не удалили
6 798
✈️Plumbum — это библиотека, предназначенная для упрощения работы с командной строкой и вызова внешних программ.
Она упрощает автоматизацию задач, которые требуют вызова командной строки из\ кода. Это может быть запуск скриптов, утилит, вызов программ для обработки данных и т. д.
➡️Основные возможности библиотеки:
— Удобный синтаксис для запуска команд и программ из Python кода. Позволяет вызывать команды командной строки так же просто, как обычные функции.
— Автоматическое формирование командной строки. Можно передавать аргументы и параметры в виде обычных переменных,
Plumbum сам сформирует командную строку.
— Перенаправление ввода/вывода. Поддержка стандартных операторов Unix для работы с потоками данных.
— Проверка кодов возврата и обработка ошибок.
— Локальное или удаленное выполнение. Возможность запускать команды как локально, так и по SSH на удаленных хостах.
➡️Пример
from plumbum import local
ls = local["ls"]
output = ls("-l")
print("Вывод команды 'ls -l':")
print(output)
# Также можно выполнять составные команды
# Например, мы можем использовать команду `grep` для фильтрации вывода
grep = local["grep"]
result = (ls("-l") | grep[".py"])() # Пайпим вывод ls в grep
print("\nВывод файлов с расширением .py:")
print(result)
⬆️Пояснение кода:
💬Мы импортируем local из модуля plumbum.
💬Определяем команду ls с помощью local["ls"].
💬Выполняем команду с аргументом -l, который выводит содержимое текущей директории в длинном формате.
💬Вывод команды сохраняем в переменной output и затем печатаем.
💬Также мы создаем команду grep и используем возможность пайпинга (|) для фильтрации вывода команды ls, чтобы показать только файлы с расширением .py.
🐍Pythoner6 798
✈️difflib особенно полезен для работы с текстами. Содержит функции для создания отчётов в нескольких распространённых форматах, в том числе в HTML.
➡️Класс Differ(), например, выводит различия в отдельных строках, сопровождая их префиксами.
➡️Класс SequenceMatcher() позволяет вычислить сходство между строками. Функция get_opcodes() возвращает список инструкций для приведения первой последовательности к виду второй.
➡️Пример:
import difflib
# Две строки для сравнения
string1 = "Привет, как дела?"
string2 = "Привет, как у тебя дела?"
# Используем SequenceMatcher для получения отличий
d = difflib.Differ()
diff = d.compare(string1.split(), string2.split())
# Вывод различий
print('\n'.join(diff))
⬆️Как это работает:
Мы используем difflib.Differ() для сравнения двух строк, разбивая их на слова.Метод compare возвращает итератор, который показывает различия между строками.
- Результат отображает изменения с символами:
- – если слова одинаковые,
- - – если слово присутствует только в первой строке,
- + – если слово присутствует только во второй строке.
Таким образом, difflib полезен в ситуациях, когда нужно определить не только факт различия между двумя последовательностями, но и конкретные места, где эти различия возникают.
🐍Pythoner6 798
😱 Сейчас в Иннотехе скандал из-за канала этого парня!
Парень без опыта работы накрутил себе стаж в резюме и прошёл собеседование на 300+
Забавно, что он делится опытом и устраивает людей на 150 000+ за 2 месяца в IT с гарантией по договору!
Без опыта и образования!
👉 Также в канале 👈
🚀 Как быстро найти первую работу в IT за 3 шага
🙋♂️ Что спрашивают на каждом собеседовании
🎁 Скандальный ГАЙД «Как накрутить опыт и не спалиться»
6 798
➡️Что такое importlib?
Это встроенная библиотека Python, которая предоставляет интерфейс для механизма импорта. С ее помощью вы можете программно импортировать модули, перезагружать их и даже создавать свои собственные импортеры!
➡️Вот простой пример использования importlib:
import importlib
# Динамический импорт модуля
math = importlib.import_module('math')
# Использование импортированного модуля
print(math.pi) # Выводит 3.141592653589793
# Перезагрузка модуля
importlib.reload(math)
➡️С importlib вы можете:
• Динамически импортировать модули
• Перезагружать модули во время выполнения
• Создавать пользовательские импортеры
• Работать с пространствами имен пакетов
🔎Эта библиотека особенно полезна при разработке плагинов, создании расширяемых приложений или отладке кода.
⛓Документация
🐍Pythoner6 798
🐍 824 ГБ платного контента для Python-разработчиков выложили бесплатно в Telegram
Выбирай нужное и обучайся:
62 ГБ — Всё про язык Python
98 ГБ — Django, Flask, FastApi и т.д.
71 ГБ — ИИ и Машинное обучение
33 ГБ — Аналитика данных
62 ГБ — Разработка приложений
47 ГБ — Тестирование ПО
51 ГБ — Автоматизация процессов
17 ГБ — Разработка ботов
31 ГБ — Разработка игр
14 ГБ — Пентестинг
22 ГБ — Парсинг веб-сайтов
37 ГБ — Создание облачных сервисов
279 ГБ — Многое другое...
🔒 Успей подписаться, пока не удалили
6 798
1️⃣AIOGram:
➕Поддерживает асинхронное программирование, что позволяет эффективно обрабатывать множество запросов без блокирования основного потока.
➕Хорошо документирована и имеет большое сообщество разработчиков.
➕Предоставляет обширный набор функций для работы с Telegram API.
➖Деплоится не на всех бесплатных сервисах.
2️⃣python-telegram-bot:
➕Простой в использовании и понимании, особенно для новичков в разработке телеграм-ботов.
➕Хорошо документирована и имеет активное сообщество разработчиков.
➕Предоставляет обширный набор функций для работы с Telegram API.
➖Не поддерживает асинхронное программирование, поэтому может быть неэффективным при обработке большого количества запросов одновременно.
➖Из-за синхронного подхода может возникать блокирование основного потока при выполнении долгих операций.
3️⃣telebot:
➕Простой в использовании и понимании.
➕Хорошо документирована и имеет небольшое, но активное сообщество разработчиков.
➕Предоставляет обширный набор функций для работы с Telegram API.
➖Не поддерживает асинхронное программирование, поэтому может быть неэффективным при обработке большого количества запросов одновременно.
➖Некоторые функции могут быть менее гибкими или сложными в использовании по сравнению с другими библиотеками.
4️⃣twx.botapi:
➕Простой в использовании и понимании, особенно для новичков в разработке телеграм-ботов.
➕Хорошо документирована и имеет некоторые примеры использования.
➕Предоставляет базовый набор функций для работы с Telegram API.
➖Ограничена в функциональности и не предоставляет некоторые продвинутые возможности, доступные в других библиотеках.
➖Неактивно поддерживается и может быть устаревшей.
❗️Выбор конкретной библиотеки зависит от ваших потребностей, уровня опыта и предпочтений в разработке.
🐍Pythoner
6 798
❓Разбор
Все, что вам стоит знать - это
// —> целочисленное деление
.count —> считает количество повторений текста/символа в строке
6 798
✈️Контейнер — это объект, предназначенный для хранения других объектов. Контейнеры реализуют различные структуры данных, такие как списки, кортежи, словари, множества и другие.
➡️Основное назначение контейнеров — удобное и эффективное хранение и доступ к группам объектов. Контейнеры позволяют легко добавлять, удалять и итерировать элементы.
➡️Все контейнеры в Python реализуют общие методы, такие как len() для получения размера и contains() для проверки вхождения элемента. Это обеспечивает единый интерфейс работы с разными типами контейнеров.
🐍Pythoner
6 798
Знаете основы Python, но руки не доходят сделать первый шаг к практике?
Сделайте его под руководствои опытного разработчика за полтора часа практики! Приглашаем вас на бесплатный практикум от преподавателя школы IT профессий Level Up - «Мой первый бот в Telegram»
По окончании практикума вы:
СОЗДАДИТЕ БОТА С НУЛЯ
ПОРАБОТАЕТЕ СО СТОРОННИМИ ПРИЛОЖЕНИЯМИ ДЛЯ СОЗДАНИЯ БОТА
НАУЧИТЕСЬ РАЗВЕРТЫВАТЬ ПРИЛОЖЕНИЕ НА СЕРВЕРЕ
Спикер практикума - Евгений Сергунин (Big Data аналитик в компании Wildberries)
Оставить заявку на практикум
Забронировать место на курсе «Python разработчик Junior» с выгодой 6000 рублей за раннее бронирование
6 798
Регистрируйтесь на главную конференцию Yandex Cloud!
Большая конференция Yandex Cloud для тех, кто создаёт цифровые продукты и решения.
Вас ждут 5 тематических треков, 31 доклад, 50 экспертов, нетворкинг и общение.
Участие бесплатное!
Зарегистрироваться
#реклама 16+
scale.yandex.cloud
О рекламодателе
6 798
➡️Подготовка базы данных
Прежде чем начать вставку внешних ключей, необходимо подготовить базу данных и создать таблицы, между которыми мы будем устанавливать связи. Рассмотрим простой пример двух таблиц:
authors и books. Таблица authors будет содержать информацию об авторах, а таблица books - информацию о книгах, написанных этими авторами. Для начала создадим эти таблицы с использованием языка SQL.
CREATE TABLE authors (
author_id SERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL
);
CREATE TABLE books (
book_id SERIAL PRIMARY KEY,
title VARCHAR(100) NOT NULL,
author_id INT,
FOREIGN KEY (author_id) REFERENCES authors (author_id)
);
➡️Вставка данных и внешних ключей с помощью Python
Теперь, когда наша база данных готова, мы можем перейти к вставке данных и внешних ключей с помощью Python. Для этого нам понадобится библиотека psycopg2, которая позволяет взаимодействовать с PostgreSQL базой данных. Убедитесь, что она установлена:
pip install psycopg2
Далее, напишем скрипт на Python, который будет вставлять данные в таблицы authors и books, устанавливая соответствующие внешние ключи.
import psycopg2
# Соединение с базой данных
conn = psycopg2.connect(
dbname="your_db_name",
user="your_db_user",
password="your_db_password",
host="your_db_host",
port="your_db_port"
)
cursor = conn.cursor()
# Вставка данных в таблицу authors
cursor.execute("INSERT INTO authors (name) VALUES (%s) RETURNING author_id", ("J.K. Rowling",))
author_id = cursor.fetchone()[0]
#Вставка данных в таблицу books с указанием внешнего ключа
cursor.execute("INSERT INTO books (title, author_id) VALUES (%s, %s)", ("Harry Potter", author_id))
# Сохранение изменений и закрытие соединения
conn.commit()
cursor.close()
conn.close()
➡️Проверка и управление целостностью данных
Внешние ключи помогают поддерживать целостность данных в базе данных. Например, они не позволяют вставлять в таблицу books значения author_id, которых нет в таблице authors. Рассмотрим, как это работает на практике. Попробуем вставить книгу с несуществующим author_id и посмотрим, что произойдет.
try:
cursor.execute("INSERT INTO books (title, author_id) VALUES (%s, %s)", ("Unknown Book", 999))
conn.commit()
except psycopg2.IntegrityError as e:
conn.rollback()
print("Ошибка целостности данных: невозможно вставить книгу с несуществующим автором.")
В данном случае psycopg2 выбросит исключение IntegrityError, и мы сможем обработать его, откатив изменения и предупредив пользователя об ошибке.
🐍Pythoner6 798
✈️Да, функции можно объявлять внутри других функций. Такая вложенная функция будет видна и доступна для вызова только внутри родительской функции, в которой она определена.
➡️Это называется замыканием и позволяет ограничить область видимости вложенной функции, чтобы она не загрязняла глобальное пространство имен.
🔎Вложенные функции могут быть полезны, когда нужно реализовать вспомогательную логику, связанную только с работой родительской функции.
🐍Pythoner
6 798
➡️Django чуть медленнее Flask из-за своей более высокой функциональности и накладных расходов. Однако на практике разница в скорости работы между ними незначительна для большинства веб-приложений.
➡️Flask может быть немного быстрее при обработке простых запросов, но Django лучше масштабируется при увеличении нагрузки благодаря встроенным инструментам кэширования и оптимизации.
Кроме того, производительность в большей степени зависит от архитектуры и качества кода конкретного приложения.
🐍Pythoner
6 798
✈️В Django ORM можно использовать механизм миграций для изменения структуры базы данных без необходимости вручную вносить изменения через SQL запросы. Миграции позволяют вам определять изменения в моделях и применять их к базе данных автоматически.
➡️Для начала работы с миграциями в Django необходимо создать начальное состояние базы данных, которое будет соответствовать текущим моделям вашего приложения. Для этого можно воспользоваться командой
python manage.py makemigrations, которая создаст файл миграции в папке migrations вашего приложения.
➡️Затем, чтобы применить миграции к базе данных, можно воспользоваться командой python manage.py migrate, которая применит все необходимые изменения к базе данных. При этом Django будет автоматически отслеживать и применять новые миграции при изменениях в моделях.
➡️Миграции в Django ORM могут включать различные операции, такие как создание новых таблиц, добавление и удаление полей, изменение типа данных и многое другое. Кроме того, можно создавать собственные миграции с помощью команды python manage.py makemigrations --empty, чтобы определить свои собственные изменения в базе данных.
👀Использование миграций в Django ORM делает процесс изменения структуры базы данных более удобным и безопасным, позволяя сохранить целостность данных и избежать ошибок при ручном внесении изменений.
🐍Pythoner6 798
✈️Иногда элементы массива изначально неизвестны, но массив для их хранения необходим сейчас. Поэтому в NumPy есть функции для создания массива с исходным содержимым (по умолчанию тип массива — float64)
>>> import numpy as np
➡️zeros((n, m)) - создает массив нулей с размером n x m.
>>> np.zeros((3, 2))
array([[0., 0.],
[0., 0.],
[0., 0.]])
➡️ones((n, m)) - создает массив единиц с размером n x m.
>>> np.ones((2, 3))
array([[1., 1., 1.],
[1., 1., 1.]])
>>> np.ones((2, 2), dtype=np.int16)
array([[1, 1],
[1, 1]], dtype=int16)
➡️empty() - создает массив без заполнения. Исходное содержимое случайно и зависит от состояния памяти на момент создания массива (мусор, что в ней хранится).
>>> np.empty((2,2))
array([[5.e-324, 0.e+000],
[0.e+000, 5.e-324]])
📁Документация NumPy
🐍Pythoner
¡Ya disponible! Investigación de Telegram 2025 — los principales insights del año 
