В этой подборке вопросы сгруппированы по формату «Лайвкодинг», чтобы подготовку можно было вести от базовых тем к практическим задачам. В подборке чаще встречаются темы: frontend, browser, database.
Условие требует, чтобы model_path / PERMITTED_SUBPATH был одним из родителей request_path. Если это не так, выбрасывается PermissionDenied. Это проверка вложенности, но не полная защита файлового доступа.
Используйте фиктивный узел перед головой и меняйте ссылки каждой пары, не сами значения. После перестановки переходите к бывшему первому узлу пары; одиночный хвост останется нетронутым.
Верните base ** exponent: оператор поддерживает положительные, нулевые и отрицательные целые степени. Для нулевого основания с отрицательной степенью возникает ZeroDivisionError.
Сначала определите правила: считаем словами последовательности букв без учёта регистра, спецсимволами — Unicode-пунктуацию, палиндромами — уникальные слова длиной больше одного. Затем выделите четыре метода.
Проблемы здесь не в синтаксисе, а в контрактах APIView, Celery и сохранения. Передавайте id, ставьте задачу после commit и возвращайте Response; отправка письма не гарантирует успешный save.
Сравнивайте соответствующие пары узлов: два None совпадают, один None означает разную форму, а разные val — разные значения. Затем проверяйте левые и правые поддеревья.
Одиночная * делает все следующие параметры только именованными. Поэтому b нужно передавать как b=..., а a может быть позиционным или именованным. Оба параметра обязательны.
Возникнет TypeError: строки Python не поддерживают присваивание отдельным символам. Чтобы получить 'dbc', нужно создать новую строку, например s = 'd' + s[1:].
Для удаления обычных пробелов используйте s.replace(' ', ''). Если нужно удалить также табуляции и другие пробельные символы, это отдельное правило: подойдёт ''.join(s.split()).
Оба print выведут [1, 2, 3, 4], но это два разных списка. Срез lst[:] создаёт поверхностную копию, а append и += независимо изменяют каждый из контейнеров.
Пройдите список двумя указателями: перепишите ненулевые значения в начало в прежнем порядке, затем заполните оставшиеся позиции нулями. Время O(n), дополнительная память O(1).
Для этих независимых условий подойдут отдельные B-tree индексы на title и date_published. Эффект зависит от доли подходящих строк; диапазон, возвращающий почти всю таблицу, может не выиграть от индекса.