Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Функция
Работает только с целыми числами. Для отрицательных чисел возвращает строку с минусом перед префиксом.
Аналог встроенного форматирования: format(10, '#o') или f"{10:#o}".
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Python собеседования
oct()
преобразует целое число в строку с восьмеричным представлением, начинающимся с префикса 0o
.
num = 64
print(oct(num)) # '0o100'
Работает только с целыми числами. Для отрицательных чисел возвращает строку с минусом перед префиксом.
print(oct(-8)) # '-0o10'
Аналог встроенного форматирования: format(10, '#o') или f"{10:#o}".
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Библиотека
Поддерживает различные типы данных: строки, хеши, списки, множества.
Для транзакций используется
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Python собеседования
redis-py
предоставляет клиент для взаимодействия с Redis. Основные операции выполняются через класс Redis
.
import redis
r = redis.Redis(host='localhost', port=6379, db=0)
r.set('key', 'value') # Запись строки
print(r.get('key')) # Чтение значения
Поддерживает различные типы данных: строки, хеши, списки, множества.
r.hset('user', 'name', 'Alice') # Хеш-таблица
r.lpush('list', 1, 2, 3) # Список
Для транзакций используется
pipeline()
, для Pub/Sub — отдельный API.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Для установки конкретной версии пакета используется синтаксис
Можно задать диапазон версий с помощью дополнительных операторов:
Допустимы модификаторы
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Python собеседования
==
в команде pip install
.
pip install package_name==1.2.3 # Точно указанная версия
pip install package_name>=1.2.0 # Минимальная версия
Можно задать диапазон версий с помощью дополнительных операторов:
pip install "package_name>=1.0.0,<2.0.0" # Версии от 1.0.0 до 2.0.0 (исключая 2.0.0)
Допустимы модификаторы
~=
(совместимые версии) и !=
(исключение версии).Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Команда
Для отмены изменений в конкретном файле:
Флаг
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Python собеседования
git reset
отменяет изменения, возвращая репозиторий к указанному коммиту.
git reset --soft HEAD~1 # Отмена последнего коммита с сохранением изменений в индексе
git reset --mixed HEAD~1 # Отмена коммита и индекса (изменения остаются в рабочей директории)
git reset --hard HEAD~1 # Полная отмена коммита и всех изменений (осторожно!)
Для отмены изменений в конкретном файле:
git reset HEAD file.txt # Удаление файла из индекса
Флаг
--hard
необратимо удаляет изменения, --soft
и --mixed
оставляют возможность повтора коммита.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Django предоставляет встроенную защиту от CSRF через middleware
Для AJAX-запросов токен передается в заголовке
Отключение защиты (не рекомендуется) делается декоратором
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Python собеседования
django.middleware.csrf.CsrfViewMiddleware
.
# В форме добавляется CSRF-токен
<form method="POST">
{% csrf_token %}
</form>
Для AJAX-запросов токен передается в заголовке
X-CSRFToken
.
headers: {'X-CSRFToken': getCookie('csrftoken')}
Отключение защиты (не рекомендуется) делается декоратором
@csrf_exempt
. Проверка токена происходит автоматически для POST, PUT, DELETE запросов.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Функция
Полезно для мониторинга или отладки асинхронного кода. Если передать аргумент
Не включает завершенные или отмененные задачи.
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Python собеседования
asyncio.all_tasks()
возвращает множество всех выполняющихся задач в текущем цикле событий.
import asyncio
async def example():
await asyncio.sleep(1)
tasks = asyncio.all_tasks() # Получение всех активных задач
Полезно для мониторинга или отладки асинхронного кода. Если передать аргумент
loop
, вернет задачи конкретного цикла.
current_loop = asyncio.get_running_loop()
tasks = asyncio.all_tasks(current_loop)
Не включает завершенные или отмененные задачи.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Метод
Результат динамически связан с исходным словарем — изменения отражаются сразу.
Можно преобразовать в список:
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Python собеседования
keys()
возвращает представление всех ключей в словаре.
d = {'a': 1, 'b': 2}
print(d.keys()) # dict_keys(['a', 'b'])
Результат динамически связан с исходным словарем — изменения отражаются сразу.
d['c'] = 3
print(d.keys()) # dict_keys(['a', 'b', 'c'])
Можно преобразовать в список:
list(d.keys())
. Работает за O(1), не создает копию данных.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Паттерн State позволяет объекту изменять поведение при смене внутреннего состояния. Реализуется через отдельные классы-состояния и контекст, который делегирует им работу.
Каждое состояние инкапсулирует свою логику, а переходы между состояниями выполняются внутри методов
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Python собеседования
class State:
def handle(self, context):
pass
class ConcreteStateA(State):
def handle(self, context):
context.state = ConcreteStateB()
class ConcreteStateB(State):
def handle(self, context):
context.state = ConcreteStateA()
class Context:
def __init__(self):
self.state = ConcreteStateA()
def request(self):
self.state.handle(self)
Каждое состояние инкапсулирует свою логику, а переходы между состояниями выполняются внутри методов
handle()
. Контекст хранит текущее состояние и вызывает его методы.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Для получения значения по ключу в словаре используется синтаксис
Метод
Для проверки наличия ключа используется оператор
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Python собеседования
dict[key]
или метод dict.get()
.
d = {'a': 1, 'b': 2}
print(d['a']) # 1 (KeyError если ключа нет)
print(d.get('c', 0)) # 0 (возвращает default вместо ошибки)
Метод
setdefault()
возвращает значение и добавляет ключ с default-значением, если его нет.
value = d.setdefault('c', 3) # Возвращает 3, добавляет 'c': 3 в словарь
Для проверки наличия ключа используется оператор
in
.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Генераторы позволяют загружать данные по требованию через
Каждый вызов
Подходит для обработки больших файлов, потоковых данных и бесконечных последовательностей.
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Python собеседования
yield
, экономя память.
def lazy_load(file_path):
with open(file_path) as file:
for line in file:
yield line.strip() # Постепенная обработка
Каждый вызов
next()
или итерация возвращает очередной элемент без загрузки всего набора.
data_loader = lazy_load('large_file.txt')
print(next(data_loader)) # Только первая строка в памяти
Подходит для обработки больших файлов, потоковых данных и бесконечных последовательностей.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Функция
Функция
Обе функции работают с любыми итерируемыми объектами (списки, кортежи, генераторы). Лениво вычисляются до первого
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Python собеседования
all()
возвращает True
, если все элементы итерируемого объекта истинны (или если он пуст). python
data = [True, 1, 'text']
print(all(data)) # True
Функция
any()
возвращает True
, если хотя бы один элемент истинный. python
data = [False, 0, '']
print(any(data)) # False
Обе функции работают с любыми итерируемыми объектами (списки, кортежи, генераторы). Лениво вычисляются до первого
False
(для all) или True
(для any).Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4👍3
Очередь
-
-
- Поддерживает методы
Используется для организации асинхронных конвейеров обработки данных, где производители и потребители работают в разных корутинах.
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Python собеседования
asyncio.Queue
предоставляет потокобезопасный механизм для передачи сообщений между асинхронными задачами. Основные методы: queue = asyncio.Queue(maxsize=10)
await queue.put(item) # Добавление элемента
item = await queue.get() # Извлечение элемента
-
put()
блокирует корутину при заполненной очереди (если задан maxsize) -
get()
ожидает появления элементов в пустой очереди - Поддерживает методы
join()
, task_done()
для отслеживания завершения обработки Используется для организации асинхронных конвейеров обработки данных, где производители и потребители работают в разных корутинах.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Для обновления конкретного пакета:
Обновление всех устаревших пакетов:
Особенности:
- Флаг
- Рекомендуется использовать в виртуальном окружении
- Для системных пакетов может потребоваться
Перед обновлением лучше проверить совместимость версий.
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Python собеседования
pip install --upgrade package_name
Обновление всех устаревших пакетов:
pip list --outdated # Просмотр устаревших пакетов
pip install --upgrade $(pip list --outdated | awk 'NR>2 {print $1}')
Особенности:
- Флаг
--upgrade
можно сократить до -U
- Рекомендуется использовать в виртуальном окружении
- Для системных пакетов может потребоваться
sudo
(не рекомендуется) Перед обновлением лучше проверить совместимость версий.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3👨💻1
Оператор
Если оба операнда
Часто используется для задания значений по умолчанию:
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Python собеседования
or
в условных выражениях возвращает первый операнд, который оценивается как True
, или последний операнд, если все значения False
. Логическое ИЛИ вычисляется по короткому циклу: если первый операнд True
, второй не проверяется.
x = 0
y = 5
result = x or y # 5, так как x == 0 (False), возвращается y
Если оба операнда
False
, возвращается последний:
a = None
b = 0
res = a or b # 0, оба значения False, возвращается b
Часто используется для задания значений по умолчанию:
value = user_input or "default" # если user_input пустой, вернется "default"
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥3