Python Developer
21.5K subscribers
1.81K photos
135 videos
13 files
1.96K links
Авторский канал действующего Python-разработчика

Сотрудничество: @bape_ads
Прайс: @bape_media

РКН: https://clck.ru/3GA6KW

Реклама на бирже:
https://telega.in/c/python_tg
Download Telegram
Вопрос с собеседования

Какие существуют модели авторизации и в чём их отличия?

Ответ: Авторизация определяет, какие действия и ресурсы разрешены пользователю после аутентификации. Основные модели авторизации различаются тем, как принимается решение о доступе.

Ролевая модель (RBAC) основана на ролях. Пользователю назначаются роли, а каждая роль определяет набор разрешённых действий. Модель проста в реализации и широко используется, но плохо подходит для сложных и динамических правил доступа.

Модель на основе разрешений оперирует конкретными правами, а не ролями. Пользователю напрямую назначаются разрешения на действия или ресурсы. Это более гибкий подход, но он сложнее в управлении при большом количестве пользователей и прав.

Атрибутная модель (ABAC) принимает решение о доступе на основе атрибутов пользователя, ресурса и контекста, например времени, местоположения или типа запроса. Это самая гибкая модель, но и самая сложная в реализации и сопровождении.

Итог: RBAC подходит для простых систем, permission-based — для более точного контроля, ABAC — для сложных бизнес-правил и динамических политик доступа.


tags: #собеседование

Python Developer | 📲 MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥114👍3
🐍 Регулярные выражения

Регулярные выражения — это мощный инструмент для поиска и обработки текстовых данных с использованием шаблонов.

В статье объясняется, как применять регулярные выражения с помощью модуля re, рассматриваются основные функции, такие как match() и search(), и приводятся примеры их использования.

Читать статью

tags: #статья

Python Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥31
Вопрос с собеседования

Как выполнить интерполяцию строк?

Ответ: Без импорта класса Template есть три способа интерполяции строк, которые представлены на фото.

tags: #собеседование

Python Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍42
Вопрос с собеседования

Почему isinstance(True, int) возвращает True?

Ответ: В Python bool является подклассом int. True и False — это экземпляры int со значениями 1 и 0 соответственно.

tags: #собеседование

➡️ Python Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍101
🐍 Вебсокеты на FastAPI: реализация простого чата с комнатами за 20 минут

В статье подробно разбирается как создать групповой чат с использованием WebSocket на FastAPI.

Автор подробно объясняет, как реализовать серверную и клиентскую части, а также как развернуть проект на сервере.

Читать статью

tags: #статья

➡️ Python Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍53
Вопрос с собеседования

Что такое процесс и поток, в чём между ними разница?

Ответ: Процесс — это независимая единица выполнения с собственной памятью и ресурсами. Поток (thread) — это подзадача внутри процесса, которая делит общую память с другими потоками.

В Python потоки ограничены GIL (Global Interpreter Lock) — только один поток может исполнять байткод одновременно. Поэтому для параллельных вычислений используют multiprocessing (создаёт отдельные процессы), а threading применяется в основном для задач, где потоки часто ждут — например, сетевые запросы или чтение файлов.


tags: #собеседование

Python Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍61
Вопрос с собеседования

Почему нельзя напрямую сравнивать два float в Python?

Ответ: Сравнение через == может вернуть False, даже если числа выглядят равными. Вместо этого нужно использовать math.isclose(a, b), которая сравнивает два числа с учётом допустимого отклонения (rel_tol и abs_tol) и гарантирует корректное сравнение.

tags: #собеседование

Python Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥18👍21😁1
🐍 Делаем тетрис на Python

В статье показано, как пошагово создать классический Тетрис с помощью библиотеки Pygame.

Автор разбирает логику игры, делится исходным кодом и объясняет, как всё устроено внутри.

Читать статью

tags: #статья

Python Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍2
Вопрос с собеседования

Что произойдёт, если в try вызвать return, а в finally — тоже return?

Ответ: Если в блоке try выполняется return, но в блоке finally тоже есть return, то возвращаемое значение из try будет проигнорировано. Возврат из finally перезапишет его.

Это происходит потому, что finally всегда выполняется после try и catch, но перед фактическим возвратом значения. Если в finally есть свой return, он окончательно определяет результат метода.


tags: #собеседование

Python Developer | 📲 MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
👍151
🐍 Простые лайфхаки для автоматизации работы

В статье рассматриваются практичные методы автоматизации повседневных задач с помощью Python.

Автор предлагает полезные скрипты и инструменты, которые помогут как начинающим, так и опытным программистам сделать свою работу более эффективной.

Читать статью

tags: #статья

➡️ Python Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
4
Вопрос с собеседования

Что такое хэш-таблица и где она используется в Python?

Ответ: Хэш-таблица — это структура данных, которая хранит пары ключ–значение и обеспечивает быстрый доступ по ключу за время, близкое к O(1).

В Python встроенные структуры dict и set реализованы на основе хэш-таблиц:

▶️ Ключи хэшируются с помощью __hash__() и сравниваются через __eq__();

▶️ Хеш-код используется для вычисления индекса в массиве, куда помещается элемент;

▶️ Начиная с Python 3.6 (и гарантированно с 3.7), dict сохраняет порядок вставки ключей благодаря compact dict.

Важно: ключ должен быть хэшируемым — то есть обладать неизменяемым хешем и согласованной реализацией __hash__() и __eq__().


tags: #собеседование

Python Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21
Вопрос с собеседования

Как управлять кешированием в HTTP?

Ответ: Кеширование в HTTP управляется с помощью специальных заголовков, которые определяют, когда и как можно повторно использовать загруженные данные.

▶️ Cache-Control — основной заголовок, задающий правила кеширования: время жизни (max-age), доступность (public, private), запрет кеширования (no-store) и др.

▶️ Last-Modified + If-Modified-Since — позволяют серверу сообщить дату последнего изменения ресурса, а клиенту — запрашивать данные только при обновлении

▶️ ETag + If-None-Match — используют уникальный идентификатор версии ресурса. Если версия не изменилась, сервер отвечает 304 Not Modified

Эти механизмы снижают нагрузку на сеть и ускоряют повторные загрузки.


tags: #собеседование

Python Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
This media is not supported in your browser
VIEW IN TELEGRAM
👍 Самый простой способ поделиться своим localhost

Pinggy позволяет быстро сделать локальный сервер доступным в интернете и просто скинуть ссылку кому угодно.

Ключевые особенности:
▶️ Запускается через одну команду или прямо из браузера

▶️ Мгновенно выдаёт публичный URL, которым можно делиться

▶️ Не требует регистрации и сложной настройки

Удобно, когда нужно протестировать вебхук/API или быстро дать доступ к демо прямо с localhost — пробуем тут.

tags: #полезное

Python Developer | 📲 MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
👍94🔥3
Что выведет код сверху?
Anonymous Quiz
32%
3456
9%
(3456)
25%
('3456')
35%
('3456',)
👀12😎5👨‍💻4🔥2
🐍 Как я создал архиватор из задачки с техсобеса: сжатие файлов с помощью RLE?

В статье рассказывается, как реализовать простой архиватор на Python с использованием алгоритма RLE.

Автор объясняет принцип сжатия, варианты улучшений и на что стоит обратить внимание при разработке подобных утилит.

Читать статью

tags: #статья

Python Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Вопрос с собеседования

Что такое замыкание?

Ответ: Замыкание — это функция, которая запоминает переменные из своей внешней области видимости и продолжает использовать их, даже если эта область уже вышла из области действия.

Как работает замыкание?
▶️ Внешняя функция создает локальные переменные и вложенную функцию
▶️ Эта вложенная функция использует переменные внешней функции
▶️ Внешняя функция возвращает вложенную функцию, которая продолжает “помнить” эти переменные, даже если внешняя функция уже завершилась

Это полезно, когда нужно передавать состояние или данные без использования глобальных переменных.


tags: #собеседование

Python Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Вопрос с собеседования

Что такое monkey patching?

Ответ: Monkey patching — это техника изменения поведения кода во время выполнения, при которой методы или атрибуты объекта динамически заменяются или добавляются. Это позволяет изменить функциональность класса без изменения его исходного кода.

tags: #собеседование

Python Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥42😁2
🐍 Мифы и легенды о производительности Python

В статье разбираются мифы о производительности Python и объясняется, что главные ограничения связаны с динамической природой языка и управлением памятью.

Автор рассказывает о своём проекте SPy — экспериментальной версии Python с модифицированной семантикой, которая в тестах уже работает в десятки раз быстрее.

Читать статью

tags: #статья

Python Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍1
Вопрос с собеседования

Как отсортировать список словарей по определённому полю?

Ответ: Чтобы отсортировать список словарей по определённому полю, например, по возрасту, можно использовать метод .sort() или функцию sorted() с параметром key.

В этот параметр передаётся функция, которая извлекает значение нужного поля из каждого словаря. Метод .sort() изменяет список на месте, а sorted() возвращает новый отсортированный список.


tags: #собеседование

Python Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍51