ru
Feedback
Pythoner

Pythoner

Открыть в Telegram

Полезные материалы по Python, которые будут интересны опытному и начинающему разработчику. Сотрудничество - @flattys Цены - @serpent_media Канал на бирже: https://telega.in/c/pythonercode

Больше
6 622
Подписчики
-324 часа
-57 дней
-3030 день
Архив постов
message_effect_id - это уникальный идентификатор, используемый в Telegram Bot API для определения конкретного визуального эфф
message_effect_id - это уникальный идентификатор, используемый в Telegram Bot API для определения конкретного визуального эффекта, который можно применить к сообщению. Эти эффекты представляют собой анимированные реакции, которые пользователи могут добавлять к сообщениям. ➡️Основные характеристики message_effect_id: Уникальность: Каждый эффект имеет свой уникальный числовой идентификатор.Формат: Идентификаторы представлены в виде строк, содержащих длинные числовые значения.Связь с эмодзи: Каждый message_effect_id соответствует определенному эмодзи, которое визуально представляет эффект. ➡️Примеры message_effect_id:
{
    '🔥': "5104841245755180586",
    '👍': "5107584321108051014",
    '👎': "5104858069142078462",
    '❤️': "5044134455711629726",
    '🎉': "5046509860389126442",
    '💩': "5046589136895476101"
}
➡️Использование в Telegram Bot API: Применение эффектов: Боты могут использовать эти идентификаторы для добавления анимированных реакций к сообщениям.Интерактивность: Позволяет создавать более динамичные и интерактивные взаимодействия в чатах.Кастомизация: Разработчики могут выбирать конкретные эффекты для различных сценариев использования бота. ➡️Значение для разработчиков: Понимание и правильное использование message_effect_id позволяет разработчикам ботов создавать более привлекательные и интерактивные интерфейсы, улучшая пользовательский опыт в Telegram. 🐍Pythoner

Repost from IT memer

Сообщество IT-специалистов в Telegram от Selectel. Канал крупнейшего независимого провайдера IT-инфраструктуры и облаков. Шес
Сообщество IT-специалистов в Telegram от Selectel. Канал крупнейшего независимого провайдера IT-инфраструктуры и облаков. Шесть причин подписаться на канал: - железные новости; - обзоры продуктов; - разборы кейсов; - актуальные IT-статьи; - анонсы митапов; - бесплатные курсы. Подписаться #реклама О рекламодателе

Станьте разработчиком нейро-сотрудников на Python и зарабатывайте от 150.000р в месяц 🔥🔥🔥 Мы научим вас создавать топовых нейро-сотрудников на базе GPT-4 Omni, и вы сможете: 1️⃣ Устроиться разработчиком в крупную компанию и зарабатывать от 150 тысяч ₽ в месяц 2️⃣ Разрабатывать такие проекты на заказ и зарабатывать от 500 тысяч ₽ за проект 3️⃣ Создать нейро-сотрудника в вашей компании и вырасти на +30-100% в зарплате Что будет на интенсиве? 🧬 Теория: как создаются нейро-сотрудники с GPT-4o на Python 🧬 Практика: мы создадим нейро-консультанта, нейро-HR, нейро-маркетолога и др. Ведущий интенсива - Senior AI разработчик нейросетей и основатель Университета искусственного интеллекта 🔥 Регистрируйтесь на бесплатный интенсив! Встречаемся в ближайший четверг!

Сделали для подписчиков наших каналов по Python небольшой розыгрыш звёзд😘
1 ноября в 18 часов по мск, 5 победителей получат по 100 звёзд, которые можно тратить в нашем и других каналах, дарить подарки и другое, удачи!
P.S. говорят если переслать этот розыгрыш друзьям, то шанс увеличится.

Gift
telegram star500

Розыгрыш призов

500 звёзд будут распределены среди 5 победителей.

Дата объявления победителей

🐍Разбор Метод find() возвращает индекс первого вхождения указанного символа или подстроки в строке. Если символ или подстрока не найдены, метод find() возвращает -1 Регистр тоже играет важную роль! Помни, что "a" - это не то же самое что "A"

Что выдаст код выше❔
Anonymous voting

photo content

⚡ Вся необходимая информация теперь собрана в одном месте — для специалистов любого направления. 📱 Python for Backend Develo
Вся необходимая информация теперь собрана в одном месте — для специалистов любого направления. 📱 Python for Backend Developer 📱 Python for DevOps Engineer 📊 Python for Data Engineer 🔬 Python for Data Scientist 🤖 Python for ML EngineerPython for QA Engineer 📈 Python for Data Analyst 🧠 Python for AI Engineer Получайте доступ к актуальным ресурсам уже сейчас!

✈️Полиморфизм - ключевой принцип объектно-ориентированного программирования (ООП), позволяющий объектам различных классов име
✈️Полиморфизм - ключевой принцип объектно-ориентированного программирования (ООП), позволяющий объектам различных классов иметь одинаковый интерфейс. Термин "полиморфизм" происходит от греческого слова, означающего "множество форм". В Python полиморфизм реализуется двумя основными способами: перегрузкой методов и их переопределением. ➡️Перегрузка методов Перегрузка методов - это возможность класса иметь несколько методов с одинаковым именем, но разными параметрами. В Python прямая перегрузка методов не поддерживается, но похожего эффекта можно достичь с помощью параметров по умолчанию и аргументов переменной длины. ➡️Пример перегрузки метода
class MathOperations:
    def add(self, a, b, c=0):
        return a + b + c

math_op = MathOperations()
print(math_op.add(10, 20))       # Вывод: 30
print(math_op.add(10, 20, 30))   # Вывод: 60
⬆️В этом примере метод add() может принимать два или три аргумента, имитируя перегрузку метода. ➡️Переопределение методов Переопределение методов - это механизм, позволяющий подклассу предоставить свою реализацию метода, уже определенного в родительском классе. Это позволяет изменять или расширять поведение унаследованных методов. ✅Пример переопределения метода
class Animal:
    def sound(self):
        return "Какой-то звук"

class Dog(Animal):
    def sound(self):
        return "Гав"

class Cat(Animal):
    def sound(self):
        return "Мяу"

dog = Dog()
cat = Cat()
print(dog.sound())  # Вывод: Гав
print(cat.sound())  # Вывод: Мяу
⬆️В этом примере классы Dog и Cat переопределяют метод sound(), унаследованный от класса Animal. ➡️Практическое применение полиморфизма Рассмотрим пример использования полиморфизма в системе обработки платежей:
class Payment:
    def process(self, amount):
        raise NotImplementedError("Подклассы должны реализовать этот метод")

class CreditCardPayment(Payment):
    def process(self, amount):
        return f"Обработан платеж кредитной картой на сумму {amount}."

class PayPalPayment(Payment):
    def process(self, amount):
        return f"Обработан платеж через PayPal на сумму {amount}."

credit_card = CreditCardPayment()
paypal = PayPalPayment()

print(credit_card.process(100))
print(paypal.process(200))
⬆️Этот пример демонстрирует, как полиморфизм позволяет работать с разными типами платежей через единый интерфейс. ➡️Заключение Полиморфизм в Python, реализуемый через переопределение методов и имитацию перегрузки, обеспечивает гибкость и возможность повторного использования кода. Эти концепции позволяют создавать более модульные, расширяемые и легко поддерживаемые программы. Эффективное использование полиморфизма - ключ к написанию чистого и элегантного кода на Python. 🐍Pythoner

Бесплатное IT-образование в 2024 Отобрали для вас полезные телеграм-каналы, которые помогут освоить IT-направления Выбирайте
Бесплатное IT-образование в 2024 Отобрали для вас полезные телеграм-каналы, которые помогут освоить IT-направления Выбирайте нужное и подписывайтесь: — Frontend: t.me/+qWPopdiaxVMzZDgy — Backend: t.me/+X-zQb-NgzGNhMzRi — GitHub: t.me/+3BVAmDixuO9lYTFi — Книги айти: t.me/+IG2NAVECUXs4MGYy — Python: t.me/+vBSA5zgB_gA0OWRi — Java: t.me/+3BRKfZ09ewg0NDJi — C#: t.me/+O3pnFY4bpF5hNTEy — С/С++: t.me/+PGxPXpZZczQxODcy — Базы Данных & SQL: t.me/+530qWWydM8ExZjk6 — Golang: t.me/+FvTd7F-O-NNmNGMy — PHP: t.me/+jBvbaet0vpplNDQy — Моб. разработка: t.me/+Ikx5H4MrPihlOWZi — Разработка игр: t.me/+Z34knEvL8P9lZTAy — DevOps: t.me/+3wSgqmP5NOBhZGUy — Data Science: t.me/+-CuoNNa6P7VjOTRi — ИБ: t.me/+4jo8N5jtGDs1NTli — Тестирование: t.me/+MvFXlXbmmPFkM2Ey — Маркетинг: t.me/+lgiFPJTYp8M0ZjRi — Дизайн: t.me/+gmflvDFPc_c1YmIy Подписаться #реклама 16+ О рекламодателе

✈️Memray - это библиотека для профилирования памяти и она является важным инструментом оптимизации производительности Python
✈️Memray - это библиотека для профилирования памяти и она является важным инструментом оптимизации производительности Python программ. ➡️Библиотека отслеживает выделение и освобождение памяти при работе программы, поддерживает отслеживание ссылок на объект, применятся для профилирования на серверах и в виртуальных окружениях. ➡️Основные функции: 💬Отслеживание выделения памяти в реальном времени. 💬Анализ использования памяти по различным объектам и их типам. 💬Предоставление удобных отчетов и визуализаций для упрощения диагностики. ➡️Пример использования: Чтобы использовать Memray, нужно сначала установить его с помощью pip:
pip install memray
Затем можно использовать Memray для профилирования вашего Python-кода. Вот простой пример:
import memray

@memray.start()
def my_function():
    # Пример кода, который может выделять память
    a = [i for i in range(100000)]
    b = [j ** 2 for j in a]
    return b

my_function()

# Сохранение отчета о профилировании
memray.stop()
После завершения работы вашей функции Memray создаст файл отчета, который можно анализировать с использованием команд:
memray flamegraph <report_file>
⬆️Это визуализирует распределение памяти, что поможет вам лучше понять, как ваша программа использует память и где могут возникнуть проблемы. 🐍Pythoner

Яндекс Директ Только этой осенью Яндекс Директ добавит до 20 000 ₽ на рекламу для вашего бизнеса ⚡ Узнать больше #реклама yandex.ru О рекламодателе

✈️Tkinter - это мощный модуль Python для создания графических пользовательских интерфейсов (GUI). Хотя он часто используется
✈️Tkinter - это мощный модуль Python для создания графических пользовательских интерфейсов (GUI). Хотя он часто используется для создания стандартных элементов интерфейса, таких как кнопки и текстовые поля, Tkinter также предоставляет возможности для создания приложений для рисования, подобных Paint. ➡️Создание холста для рисования Основой для рисования в Tkinter является виджет Canvas (холст). Вот как можно создать простое окно с холстом:
from tkinter import *

class Application(Frame):
    def __init__(self, master):
        super().__init__(master)
        self.master = master
        self.pack()
        self.create_widget()

    def create_widget(self):
        self.canvas = Canvas(self, width=200, height=200, bg='white')
        self.canvas.pack()
        self.canvas.bind('<B1-Motion>', self.draw)

    def draw(self, event):
        self.canvas.create_oval(event.x, event.y, event.x+1, event.y+1)

root = Tk()
root.geometry('200x200')
app = Application(root)
root.mainloop()
➡️Как работает рисование Ключевой метод для рисования - это функция draw:
def draw(self, event):
    self.canvas.create_oval(event.x, event.y, event.x+1, event.y+1)
⬆️Этот метод создает маленький овал (фактически, точку) в позиции курсора мыши. Метод вызывается каждый раз, когда пользователь перемещает мышь с зажатой левой кнопкой (событие &lt;B1-Motion&gt;). ➡️Настройка размера кисти Вы можете легко изменить размер "кисти", увеличив размер создаваемого овала:
def draw(self, event):
    brush_size = 5
    x1, y1 = (event.x - brush_size), (event.y - brush_size)
    x2, y2 = (event.x + brush_size), (event.y + brush_size)
    self.canvas.create_oval(x1, y1, x2, y2, fill='black')
➡️Добавление функциональности Вы можете расширить функциональность вашего приложения для рисования, добавив следующие возможности: 💬Выбор цвета кисти 💬Изменение размера кисти 💬Очистка холста 💬Сохранение рисунка 🐍Pythoner

Запустите рекламу в телеграм-каналах с Яндекс Директом Перфоманс-реклама теперь в телеграм-каналах ⚡ Яндекс Директ знает, как
Запустите рекламу в телеграм-каналах с Яндекс Директом Перфоманс-реклама теперь в телеграм-каналах ⚡ Яндекс Директ знает, как привлечь целевую аудиторию 💰👌 Попробовать #реклама yandex.ru О рекламодателе

Repost from IT memer

✈️Добавление поддержки нескольких языков в Django может быть сложной задачей для новичков. В этом посте мы рассмотрим пошагов
✈️Добавление поддержки нескольких языков в Django может быть сложной задачей для новичков. В этом посте мы рассмотрим пошаговый процесс реализации многоязычности в вашем Django-проекте. ➡️Настройка проекта Если у вас еще нет готового проекта Django, вы можете создать новый, выполнив следующие шаги:
virtualenv .env
source .env/bin/activate
pip install django
django-admin startproject languages
cd languages
python manage.py migrate
➡️Включение i18n и l10n Убедитесь, что в вашем файле [settings.py](http://settings.py) включены следующие настройки:
USE_I18N = True
USE_L10N = True
➡️Перевод в шаблонах Для перевода текста в шаблонах используйте тег {% trans %}:
{% load i18n %}
{% trans "Hello world! This is an HTML5 Boilerplate." %}
➡️Перевод в представлениях Для перевода текста в представлениях используйте функцию gettext:
from django.utils.translation import gettext as _

def index(request):
    text = _("this is some random text")
    return render(request, 'home.html', {'text': text})
➡️Создание файлов перевода Создайте каталог для хранения переводов и выполните команду для создания файлов перевода:
mkdir -p locale
django-admin makemessages --ignore="static" --ignore=".env" -l nl
➡️Редактирование файлов перевода Отредактируйте файл django.po в созданном каталоге locale, добавив переводы для каждой строки:
#: home/templates/home.html:19
msgid "Hello world! This is an HTML5 Boilerplate."
msgstr "Hallo wereld! Dit is een HTML5 Boilerplate."
➡️Компиляция файлов перевода После редактирования файлов перевода, скомпилируйте их:
django-admin compilemessages
➡️Настройка языка на основе пользовательских предпочтений Добавьте поле для выбора языка в модель пользователя:
LANGUAGE_CHOICES = (
    ('en-us', 'English'),
    ('nl', 'Dutch'),
)
language = models.CharField(default='en-us', choices=LANGUAGE_CHOICES, max_length=5)
В представлении активируйте язык на основе настроек пользователя:
from django.utils import translation

def index(request):
    if request.user.is_authenticated:
        translation.activate(request.user.language)
    return render(request, 'home.html')
➡️Заключение Следуя этим шагам, вы сможете добавить поддержку нескольких языков в ваш Django-проект. Не забывайте обновлять файлы перевода при добавлении нового текста и компилировать их после внесения изменений. 🐍Pythoner

➡️Проблема традиционного подхода Многие статьи рекомендуют создавать полноценный React SPA и использовать Django только как R
➡️Проблема традиционного подхода Многие статьи рекомендуют создавать полноценный React SPA и использовать Django только как REST API. Однако такой подход имеет ряд недостатков, особенно для небольших проектов: 💬Дублирование кода (маршрутизация, аутентификация, авторизация) 💬Необходимость создания отдельных страниц ошибок 💬Дублирование состояний и моделей данных Хотя для некоторых проектов это может быть приемлемым решением, для моего небольшого приложения такой подход кажется излишним. ➡️Альтернативное решение: React как шаблонизатор Идея заключается в том, чтобы использовать React не как полноценный фронтенд-фреймворк, а как шаблонизатор для Django. Это позволит нам сохранить преимущества обоих инструментов. ➡️Точки монтирования React React имеет удобное свойство: он монтируется не просто в body DOM или случайное место, а именно в указанный вами элемент. Мы можем использовать это для реализации маршрутизации, используя одну точку монтирования для каждой страницы:
ReactDOM.render(
  &lt;h1&gt;Страница 1!&lt;/h1&gt;,
  document.getElementById('page-1')
);

ReactDOM.render(
  &lt;h1&gt;Страница 2!&lt;/h1&gt;,
  document.getElementById('page-2')
);
➡️Маршрутизация на стороне Django На стороне Django нам нужно только отрендерить &lt;div&gt; с соответствующим идентификатором:
{% extends "base.html" %}
{% load static %}

{% block content %}
  &lt;div id="{{ element_id }}"&gt;&lt;/div&gt;
  &lt;script src="{% static 'index.js' %}"&gt;&lt;/script&gt;
{% endblock %}
➡️Оптимизация размера пакета Чтобы не загружать JavaScript для неиспользуемых страниц, мы можем использовать встроенную функцию React - Code Splitting:
let Page1 = React.lazy(() => import('./page1'))
let Page2 = React.lazy(() => import('./page2'))

ReactDOM.render(
  &lt;Suspense fallback={&lt;&gt;&lt;/&gt;}&gt;
    &lt;Page1/&gt;
  &lt;/Suspense&gt;,
  document.getElementById('page-1')
);
➡️Передача контекстных данных Для передачи данных из Django в React мы можем использовать встроенный в Django тег json_script:
{% extends "base.html" %}
{% load static %}

{% block content %}
  &lt;div id="{{ element_id }}"&gt;&lt;/div&gt;
  {{ page_context | json_script:'page-context' }}
  &lt;script src="{% static 'index.js' %}"&gt;&lt;/script&gt;
{% endblock %}
➡️На стороне React мы можем получить эти данные с помощью пользовательского хука:
export let usePageContext = &lt;T = any&gt;() => {
  let [pageContext, setPageContext] = useState&lt;T | undefined&gt;(undefined)
  useEffect(() => {
    let pageContext = document.getElementById('page-context').textContent
    setPageContext(JSON.parse(pageContext))
  }, [])
  return pageContext as T
}

const TodosIndexPage = memo(() => {
  let pageContext = usePageContext&lt;{ todos: Todo[] }&gt;()
  let todos = pageContext?.todos
  return &lt;&gt;
    &lt;h1&gt;React todos page&lt;/h1&gt;
    &lt;ul&gt;
      {todos?.map(todo => &lt;li key={todo.id}&gt;{todo.title}&lt;/li&gt;)}
    &lt;/ul&gt;
  &lt;/&gt;
})
➡️Заключение Этот подход позволяет использовать React как шаблонизатор для Django, сохраняя при этом простоту разработки и избегая дублирования кода. Основные шаги для реализации: 💬Создание отдельных точек монтирования для React 💬Настройка разделения кода для оптимизации производительности 💬Реализация маршрутизации на стороне Django 💬Передача контекста страницы из Django в React 💬Получение и использование контекста страницы на стороне React 🐍Pythoner

➡️Что такое веб-приложение? Веб-приложение - это программное обеспечение, которое работает в веб-браузере. Основные характери
➡️Что такое веб-приложение? Веб-приложение - это программное обеспечение, которое работает в веб-браузере. Основные характеристики веб-приложений включают: 💬Независимость от платформы 💬Работа на любом устройстве, включая мобильные 💬Зависимость от интернет-соединения (как минимум для начальной загрузки) 💬Динамический контент с частыми обновлениями ➡️Технологии, лежащие в основе веб-приложений Веб-приложения создаются с использованием различных технологий: 💬Фронтенд: HTML, CSS и JavaScript 💬Бэкенд: Node.js, Python (с Django или Flask), Java и другие 💬Базы данных: SQL и NoSQL варианты (например, MongoDB, PostgreSQL) ➡️Примеры веб-приложений Многие популярные сервисы, которые мы используем ежедневно, являются веб-приложениями: 💬Gmail 💬Google Документы 💬Trello 💬Slack 💬Онлайн-банкинг ➡️Безопасность в веб-приложениях Веб-приложения имеют преимущество в виде встроенных функций безопасности, таких как HTTPS для шифрования передаваемых данных. Это освобождает разработчиков от необходимости создавать меры безопасности с нуля. ➡️Время загрузки веб-приложений Типичное время загрузки веб-приложений: 💬Первая загрузка: около 7-8 секунд 💬Последующие загрузки: около 1 секунды (благодаря кэшированию) ➡️Гибридный подход Многие компании используют гибридный подход: 💬Веб-сайт для презентации и продажи идеи (оптимизирован для SEO) 💬Веб-приложение для основного продукта (оптимизировано для удобства пользователей) ➡️Почему веб-приложения важны? Веб-приложения имеют ряд преимуществ, которые делают их важными в современном мире: 💬Доступность с любого устройства с браузером 💬Не требуют установки и обновления на устройстве пользователя 💬Легко обновляются и поддерживаются разработчиками 💬Обеспечивают единообразный пользовательский опыт на разных платформах 🐍Pythoner