Media is too big
VIEW IN TELEGRAM
👾 Jabber чат-бот на Python
«Джаббер» (Jabber) в переводе с английского означает "болтовня" или "трескотня". Это первоначальное наименование свободного протокола обмена мгновенными сообщениями ХМРР, а также собирательное название работающих с его использованием клиентских программ.
➖ https://www.youtube.com/watch?v=cZQJ1U2LS8o
«Джаббер» (Jabber) в переводе с английского означает "болтовня" или "трескотня". Это первоначальное наименование свободного протокола обмена мгновенными сообщениями ХМРР, а также собирательное название работающих с его использованием клиентских программ.
➖ https://www.youtube.com/watch?v=cZQJ1U2LS8o
👍6❤2
❤14👍1
🔥 __slots__ в Python
Когда мы создаем объект класса, атрибуты этого объекта сохраняются в словарь под названием
Давайте создадим простой класс
//Читать статью
Когда мы создаем объект класса, атрибуты этого объекта сохраняются в словарь под названием
__dict__
. Этот словарь мы используем, когда присваиваем и считываем значения атрибутов. Это позволяет нам динамически внедрять новые атрибуты уже после создания объекта.Давайте создадим простой класс
Article
, у которого изначально есть два атрибута: date
и writer
. Если мы выведем __dict__
данного объекта, то получим ключи и значения для каждого атрибута. Также мы выведем __dict__
для самого класса – это нам понадобится позже. После этого добавим в объект новый атрибут reviewer
и увидим его в обновленном __dict__
.//Читать статью
🤔8❤5🔥2
⚙️ Конвейер данных в реальном времени с Kafka и ClickHouse
Построим конвейер данных с их приемом в ClickHouse через Kafka и агрегированием автоматически обновляемых данных. Возьмем набор данных о мировых ценах на продовольствие, хоть и неидеальный для Kafka из-за отсутствия критериев скорости.
Сначала создадим на Python скрипт для выдачи сообщений — строк набора данных. Затем настроим ClickHouse для их получения и обработки, а после поэкспериментируем с представлением в реальном времени и удалением данных.
//Читать статью
Построим конвейер данных с их приемом в ClickHouse через Kafka и агрегированием автоматически обновляемых данных. Возьмем набор данных о мировых ценах на продовольствие, хоть и неидеальный для Kafka из-за отсутствия критериев скорости.
Сначала создадим на Python скрипт для выдачи сообщений — строк набора данных. Затем настроим ClickHouse для их получения и обработки, а после поэкспериментируем с представлением в реальном времени и удалением данных.
//Читать статью
🔥7👍1
🔥 Пять статей от редакции, собравшие больше всего отдачи:
1. Модуль Calendar в Python (часть 1)
Модуль Calendar в Python (часть 2)
2. Как загружать данные в SQL в 20 раз быстрее на Python - Работа с массивными наборами данных – повседневное дело для большинства специалистов по обработке данных...
3. Добавление функций в классы Python
4. Книга "40 алгоритмов, которые должен знать каждый программист на Python"
5. __slots__ в Python
1. Модуль Calendar в Python (часть 1)
Модуль Calendar в Python (часть 2)
2. Как загружать данные в SQL в 20 раз быстрее на Python - Работа с массивными наборами данных – повседневное дело для большинства специалистов по обработке данных...
3. Добавление функций в классы Python
4. Книга "40 алгоритмов, которые должен знать каждый программист на Python"
5. __slots__ в Python
🔥6👍4
Media is too big
VIEW IN TELEGRAM
🔥 Доступ к свойствам объекта. Property и slots
Обсудим интересный вопрос -как можно запретить менять наши атрибуты, реализовать логику изменения/получения атрибутов и как запретить добавлять объекту новые атрибуты.
Напоминаю: используем сет/гет, а также проперти ТОЛЬКО при наличии логики в получении или установке атрибута
▪️ _dict_ - это атрибут объектов в питоне, который хранит состояние
▪️ _setattr_ вызывается при попытке установить атрибут
▪️ property - это удобный механизм создания геттеров и сеттеров
▪️ _slots_ - создан для уменьшения памяти, занимаемой объектами, но как побочное свойство -не даст добавить объекту новый атрибут
➖ https://www.youtube.com/watch?v=Ak8Fqw7YpDc
Обсудим интересный вопрос -как можно запретить менять наши атрибуты, реализовать логику изменения/получения атрибутов и как запретить добавлять объекту новые атрибуты.
Напоминаю: используем сет/гет, а также проперти ТОЛЬКО при наличии логики в получении или установке атрибута
▪️ _dict_ - это атрибут объектов в питоне, который хранит состояние
▪️ _setattr_ вызывается при попытке установить атрибут
▪️ property - это удобный механизм создания геттеров и сеттеров
▪️ _slots_ - создан для уменьшения памяти, занимаемой объектами, но как побочное свойство -не даст добавить объекту новый атрибут
➖ https://www.youtube.com/watch?v=Ak8Fqw7YpDc
👍8
🤯24🔥8👍6❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Делаем красоту в Python turtle graphics
🔥Копируем код и наслаждаемся процессом (а приятнее, конечно, сделать свою красоту)
import turtle as tur
import colorsys as cs
tur.setup(800,800)
tur.speed(0)
tur.tracer(10)
tur.width(2)
tur.bgcolor("black")
for j in range(25):
for i in range(15):
tur.color(cs.hsv_to_rgb(i/15,j/25,1))
tur.right(90)
tur.circle(200-j*4,90)
tur.left(90)
tur.circle(200-j*4,90)
tur.right(180)
tur.circle(200-j*4,90)
tur.hideturtle()
tur.done()
Turtle - это предустановленная библиотека Python, которая позволяет пользователям создавать рисунки и фигуры, предоставляя им виртуальный холст.Экранное перо, которое вы используете для рисования, называется черепашкой, что и дает название библиотеке.🔥Копируем код и наслаждаемся процессом (а приятнее, конечно, сделать свою красоту)
🤯22👍12❤6🔥1
🔥 Релиз Django LTS 4.2: обзор изменений и необходимости обновления
В апреле 2023 года вышла новая LTS-версия Django Web Framework, одного из самых популярных фреймворков для веб-разработки на Python.
«Вышла новая версия! Почему вы до сих пор не перешли на неё?» — такой вопрос часто возникает у студентов, изучающих этот фреймворк на курсах программирования. Аналогичный вопрос можно услышать и от начинающего специалиста, который недавно приступил к выполнению своих обязанностей в качестве бэкенд-разработчика.
А стоит ли сейчас вообще начинать новый проект на Django или изучать этот фреймворк? В этой статье мы разберемся с этими и другими вопросами.
//Читать статью
В апреле 2023 года вышла новая LTS-версия Django Web Framework, одного из самых популярных фреймворков для веб-разработки на Python.
«Вышла новая версия! Почему вы до сих пор не перешли на неё?» — такой вопрос часто возникает у студентов, изучающих этот фреймворк на курсах программирования. Аналогичный вопрос можно услышать и от начинающего специалиста, который недавно приступил к выполнению своих обязанностей в качестве бэкенд-разработчика.
А стоит ли сейчас вообще начинать новый проект на Django или изучать этот фреймворк? В этой статье мы разберемся с этими и другими вопросами.
//Читать статью
👍10❤2
Media is too big
VIEW IN TELEGRAM
🎬 "Простой Python": ложь, большая ложь и метаклассы / Григорий Петров
Мы привыкли к тому, что "Python — это простой язык, исполняемый псевдокод". Так написано в книгах, так говорят преподаватели на курсах, так написано в интернетах. А потом начинающие разработчики приходят на работу, где их встречают протоколы, декораторы, менеджеры контекстов, метаклассы и другие веселые зверушки взрослого Пайтона.
➖ https://www.youtube.com/watch?v=_EHgMxtrOmE
Мы привыкли к тому, что "Python — это простой язык, исполняемый псевдокод". Так написано в книгах, так говорят преподаватели на курсах, так написано в интернетах. А потом начинающие разработчики приходят на работу, где их встречают протоколы, декораторы, менеджеры контекстов, метаклассы и другие веселые зверушки взрослого Пайтона.
➖ https://www.youtube.com/watch?v=_EHgMxtrOmE
🔥13🤔4
Что выдает код выше?
Anonymous Quiz
19%
<class 'hexint'>
51%
<class 'hex'>
24%
<class 'int'>
6%
<class 'number'>
🤔10🤯7👍3
🔥 Дублирующий скрипт: как с его помощью мы ускорили бизнес-процесс с двух рабочих дней до семи минут
Как известно, при создании промышленного процесса, в котором регламентирован каждый шаг, все участвующие подразделения стараются максимально облегчить выполнение своей части работы. Поэтому часто применяются упрощения, которые не позволяют учесть все нюансы процесса, отслеживаемые в ручном режиме каждым аналитиком. По сути, перед автоматизаторами стоит задача охватить наибольшее число вариаций и при этом не усложнить процесс так, чтобы с ним было невозможно работать. Под усложнениями понимаются различные блокирующие процесс проверки, многочисленные итерации согласований по той или иной задаче, формы дополнительного ручного ввода данных и т.п.
В итоге формируются упрощенные требования, которые не позволяют в полной мере реализовать контроль как над ручными ошибками пользователей, так и над ошибками, допущенными при разработке требований и алгоритмов автоматизируемого процесса.
//Читать статью
Как известно, при создании промышленного процесса, в котором регламентирован каждый шаг, все участвующие подразделения стараются максимально облегчить выполнение своей части работы. Поэтому часто применяются упрощения, которые не позволяют учесть все нюансы процесса, отслеживаемые в ручном режиме каждым аналитиком. По сути, перед автоматизаторами стоит задача охватить наибольшее число вариаций и при этом не усложнить процесс так, чтобы с ним было невозможно работать. Под усложнениями понимаются различные блокирующие процесс проверки, многочисленные итерации согласований по той или иной задаче, формы дополнительного ручного ввода данных и т.п.
В итоге формируются упрощенные требования, которые не позволяют в полной мере реализовать контроль как над ручными ошибками пользователей, так и над ошибками, допущенными при разработке требований и алгоритмов автоматизируемого процесса.
//Читать статью
🔥7
Media is too big
VIEW IN TELEGRAM
🎬 Почему вам не нужен асинхронный ORM / Денис Катаев
Каждый день мы пишем много асинхронного кода и выбираем для каждой задачи подходящую aio-библиотеку в зависимости от того, с чем нам приходится работать: с HTTP или с файлами. А ещё нам приходится работать с базами данных, но, увы, aio-database нет.
➖ https://www.youtube.com/watch?v=tIpMZTbEK6Q&t=38s
Каждый день мы пишем много асинхронного кода и выбираем для каждой задачи подходящую aio-библиотеку в зависимости от того, с чем нам приходится работать: с HTTP или с файлами. А ещё нам приходится работать с базами данных, но, увы, aio-database нет.
➖ https://www.youtube.com/watch?v=tIpMZTbEK6Q&t=38s
❤4👍2🔥2🤯1
This media is not supported in your browser
VIEW IN TELEGRAM
⚙ Генерация 2D мира с помощью клеточного автомата на Python
Простейший генератор 2D мира, который основан на простейшем правиле клеточного автомата. Что такое клеточный автомат? Какие клеточные автоматы бывают? Эти и многие другие вопросы мы разберем.
//Читать статью
Простейший генератор 2D мира, который основан на простейшем правиле клеточного автомата. Что такое клеточный автомат? Какие клеточные автоматы бывают? Эти и многие другие вопросы мы разберем.
//Читать статью
🤔13👍4
🤔12👍3
Цифровые часы с помощью sleep() и timestamp()
В этом скрипте мы создадим 7 временных отметок и добавим задержку на 2 секунды между каждыми двумя отметками.
Во-первых, чтобы запустить код, нам нужно добавить модуль
Мы используем функцию
В этом скрипте мы создадим 7 временных отметок и добавим задержку на 2 секунды между каждыми двумя отметками.
Во-первых, чтобы запустить код, нам нужно добавить модуль
time
. Функция sleep()
входит в этот модуль и принимает только один параметр – время в секундах, на которое остановится наша программа.Мы используем функцию
time()
, чтобы узнать текущее время, и localtime()
, чтобы получить текущие дату и время в конкретной местности. Кроме того, есть функция strftime()
(«string from time»), которая возвращает время в виде строки в указанном формате.🔥8