Python RU
Все для python разработчиков админ - @haarrp @python_job_interview - Python собеседования @ai_machinelearning_big_data - машинное обучение @itchannels_telegram - 🔥лучшие ит-каналы @programming_books_it - it книги @pythonl РКН: clck.ru/3Fmy2j
Ko'proq ko'rsatish📈 Telegram kanali Python RU analitikasi
Python RU (@pro_python_code) Rus til segmentidagi kanali faol ishtirokchi. Hozirda hamjamiyat 12 504 obunachidan iborat bo'lib, Texnologiyalar & Aralashmalar toifasida 10 153-o'rinni va Rossiya mintaqasida 53 001-o'rinni egallagan.
📊 Auditoriya ko‘rsatkichlari va dinamika
невідомо sanasidan buyon loyiha tez o‘sib, 12 504 obunachiga ega bo‘ldi.
08 Iyun, 2026 dagi oxirgi ma’lumotlarga ko‘ra kanal barqaror faollikka ega. Oxirgi 30 kunda obunachilar soni -81 ga, so‘nggi 24 soatda esa -1 ga o‘zgardi va umumiy qamrov yuqori darajada qolmoqda.
- Tasdiqlash holati: Tasdiqlanmagan
- Jalb etish (ER): Auditoriya o‘rtacha 7.21% darajada jalb etiladi. Nashrdan keyingi dastlabki 24 soatda kontent odatda umumiy obunachilar sonining 2.89% ini tashkil etuvchi reaksiyalarni to‘playdi.
- Post qamrovi: Har bir post o‘rtacha 901 marta ko‘riladi; birinchi sutkada odatda 361 ta ko‘rish yig‘iladi.
- Reaksiyalar va o‘zaro ta’sir: Auditoriya faol: har bir postga o‘rtacha 7 ta reaksiya keladi.
- Tematik yo‘nalishlar: Kontent api, docker, github, sql, linux kabi asosiy mavzularga jamlangan.
📝 Tavsif va kontent siyosati
Muallif resursni shaxsiy fikrni ifoda etish maydoni sifatida ta’riflaydi:
“Все для python разработчиков
админ - @haarrp
@python_job_interview - Python собеседования
@ai_machinelearning_big_data - машинное обучение
@itchannels_telegram - 🔥лучшие ит-каналы
@programming_books_it - it книги
@pythonl
РКН: clck.ru/3Fmy2j”
Yuqori yangilanish chastotasi (oxirgi ma’lumot 09 Iyun, 2026 da olingan) sababli kanal doimo dolzarb va katta qamrovli bo‘lib qoladi. Analitika auditoriya kontent bilan faol hamkorlik qilishini, uni Texnologiyalar & Aralashmalar toifasidagi muhim ta’sir nuqtasiga aylantirishini ko‘rsatadi.
`lru_cache` используется в качестве декоратора для функции fibonacci. Поскольку последовательность Фибоначчи может быть вычислительно затратной для больших входных данных, кэширование результатов для каждого вызова может значительно ускорить последующие вызовы с теми же аргументами.
Однако декоратор кэширования не следует использовать в каждом конкретном случае. Для функций, результаты которых меняются даже при одинаковых входных данных, или для функций, выходными данными которых являются изменяемые объекты, кэширования следует избегать.
При первом вызове `fibonacci(35)` функция вычислит результат обычным способом, учитывая рекурсивный характер последовательности Фибоначчи. Это может занять много времени.
Однако при втором вызове `fibonacci(35)` вместо повторного вычисления функция просто найдет значение в кэше и вернет его. В результате время выполнения второго вызова будет значительно меньше, что свидетельствует о пользе кэширования.
Фактическое время выполнения на вашей машине будет зависеть от ее вычислительной мощности, но, скорее всего, вы увидите заметную разницу между двумя вызовами.
Помните, что lru_cache может ускорить только последующие вызовы с теми же параметрами. Если вызвать fibonacci(36) после fibonacci(35), то все равно придется вычислять значение. Однако вычисление будет происходить быстрее, чем без кэша, так как fibonacci(35) уже закешировано, и ему нужно только добавить к нему fibonacci(34).
@pro_python_code[{time: время, flag: цвет флага, start_finish: ‘’}]
◾️ время согласно графику работы: часы, минуты;
◾️ цвет флага: зелёный – после него время нужно учитывать, красный – после него время учитывать не нужно;
◾️ ‘’ – этому элементу позже будет присвоено значение «старт» или «финиш», в зависимости от того точка А или точка В расположена левее данной временной отсечки.
Для удобства восприятия покажем только values, но подразумеваем, что keys и фигурные скобки тоже присутствуют. В нашем случае получится следующий результат:
Понедельник:
[{time: 10:00, flag: зелёный, start_finish: ‘’},
{time: 19:00, flag: красный, start_finish: ‘’},
{time: 13:00, flag: красный, start_finish: ‘’},
{time: 14:00, flag: зелёный, start_finish: ‘’}]
И так для каждого дня.
Таким образом, на этом этапе нужно составить словарь, включающий режим работы по дням недели с учетом обеденного перерыва. Мы сознательно не приводим код для этой части работы, поскольку, по сути, это подготовка данных, а не сам алгоритм расчета потерь времени. Эта часть зависит от формата представления исходных данных.
Шаг 2:
Схожим образом представим точки A и B:
[{time: дата + время, flag: ‘’, start_finish: старт/финиш}]
▪️дата + время: год, месяц, день, часы, минуты;
▪️‘’ – на место этого элемента в дальнейшем будет подставлен красный или зелёный флаг, (по цвету флага ближайшего соседа слева на временной шкале);
▪️старт/финиш: старт – это точка А, финиш – В.
A: {time: 01.03.2023 11:00, flag: ‘’, start_finish: ‘старт’}
B: {time: 02.03.2023 11:00, flag: ‘’, start_finish: ‘финиш’}
Шаг 3:
Определим все дни между точками A и B включительно и подтянем из графика работы по этим дням все флаги, а также сами точки А и В. Данные из нашего примера превратятся в список. Теперь ключевой момент, на котором, собственно, и строится весь алгоритм: отсортируем список по возрастанию даты и времени. Это важно, т.к. позволит нам идти в цикле от отсечки к отсечке, проверяя, нужно ли включать следующий за ней отрезок в расчет.
[{time: 01.03.2023 10:00, flag: ‘зелёный’, start_finish: ‘’}
{time: 01.03.2023 11:00, flag: ‘’, start_finish: ‘старт’}
{time: 01.03.2023 13:00, flag: ‘красный’, start_finish: ‘’}
{time: 01.03.2023 14:00, flag: ‘зелёный’, start_finish: ‘’}
{time: 01.03.2023 19:00, flag: ‘красный’, start_finish: ‘’}
{time: 02.03.2023 10:00, flag: ‘зелёный’, start_finish: ‘’}
{time: 02.03.2023 13:00, flag: ‘красный’, start_finish: ‘’}
{time: 02.03.2023 13:30, flag: ‘’, start_finish: ‘финиш’}]
Код для шагов 2 и 3:
ПодробнееFROM python:3.11-slim
Шаг 2: Создание непривилегированного пользователя
Официальный образ контейнера Python не содержит предустановленного непривилегированного пользователя. Поэтому нам необходимо его создать. Мы создадим пользователя с UID 1000 и GID 1000.
RUN groupadd -g 1000 python && \
useradd -r -u 1000 -g python python
Шаг 3: Копирование и установка зависимостей
Если ваше приложение имеет какие-либо зависимости, то их необходимо скопировать в контейнер и установить. Это можно сделать с помощью инструкций COPY и RUN.
COPY requirements.txt .
RUN pip install -r requirements.txt
Шаг 4: Настройка рабочего каталога
Далее необходимо создать внутри контейнера каталог, в котором будет храниться исходный код нашего приложения. Мы создадим каталог /app и убедимся, что он принадлежит непривилегированному пользователю, которого мы создали на шаге 2.
RUN mkdir /app && chown python:python /app
WORKDIR /app
Шаг 5: Скопируйте код приложения
Теперь необходимо скопировать исходный код нашего приложения в рабочий каталог.
COPY app.py .
Шаг 6: Запуск от имени непривилегированного пользователя
Нам необходимо убедиться, что процессы, запущенные в нашем контейнере, будут выполняться в непривилегированном режиме.
Это можно сделать с помощью инструкции USER.
USER 1000
Шаг 7: Задание команды входа
Наконец, необходимо указать, какая команда должна быть выполнена при запуске контейнера. Мы хотим выполнить исходный код нашего приложения, поэтому используем инструкцию CMD.
CMD ["python", "app.py"]
После выполнения этих шагов можно собрать образ Docker с помощью следующей команды:
docker build -t my-python-app .
Для запуска контейнера можно воспользоваться следующей командой:
docker run -p 8080:80 my-python-app
Это приведет к запуску контейнера и открытию порта 8080 на хост-машине. Теперь вы можете получить доступ к своему приложению по адресу http://localhost:8080.
Ниже приведен пример Dockerfile для простого Python-приложения:
FROM python:3.11-slim
RUN groupadd -g 1000 python && \
useradd -r -u 1000 -g python python
COPY requirements.txt .
RUN pip install -r requirements.txt
RUN mkdir /app && chown python:python /app
WORKDIR /app
COPY app.py .
USER 1000
CMD ["python", "app.py"]
Для создания образа Docker необходимо выполнить следующую команду:
docker build -t my-python-app .
Для запуска контейнера необходимо выполнить следующую команду:
docker run -p 8080:80 my-python-app
Это приведет к запуску контейнера и открытию порта 8080 на хост-машине. После этого вы сможете получить доступ к своему приложению по адресу http://localhost:8080.
@pro_python_code
Endi mavjud! Telegram Tadqiqoti 2025 — yilning asosiy insaytlari 
