Python | Вопросы собесов
前往频道在 Telegram
Cайт: easyoffer.ru Реклама: @easyoffer_adv ВП: @easyoffer_vp Тесты t.me/+20tRfhrwPpM4NDQy Задачи t.me/+nsl4meWmhfQwNDVi Вакансии t.me/+cXGKkrOY2-w3ZTky
显示更多📈 Telegram 频道 Python | Вопросы собесов 的分析概览
频道 Python | Вопросы собесов (@python_easy_ru) 俄语 语言赛道中的 是活跃参与者。目前社区聚集了 13 099 名订阅者,在 技术与应用 类别中位列第 9 746,并在 俄罗斯 地区排名第 50 691 位。
📊 受众指标与增长动态
自 невідомо 创建以来,项目保持高速增长,吸引了 13 099 名订阅者。
根据 11 六月, 2026 的最新数据,频道保持稳定运转。过去 30 天订阅人数变化为 -60,过去 24 小时变化为 -4,整体触达仍然可观。
- 认证状态: 未认证
- 互动率 (ER): 平均受众互动率为 9.30%。内容发布后 24 小时内通常能获得 5.54% 的反应,占订阅者总量。
- 帖子覆盖: 每篇帖子平均可获得 1 219 次浏览,首日通常累积 726 次浏览。
- 互动与反馈: 受众积极参与,单帖平均反应数为 3。
- 主题关注点: 内容集中在 ставь, модуль, строка, docker, alice 等核心主题上。
📝 描述与内容策略
作者将该频道定位为表达主观观点的平台:
“Cайт: easyoffer.ru
Реклама: @easyoffer_adv
ВП: @easyoffer_vp
Тесты t.me/+20tRfhrwPpM4NDQy
Задачи t.me/+nsl4meWmhfQwNDVi
Вакансии t.me/+cXGKkrOY2-w3ZTky”
凭借高频更新(最新数据采集于 12 六月, 2026),频道始终保持新鲜度与高覆盖。分析显示受众积极互动,使其成为 技术与应用 类别中的关键影响点。
13 099
订阅者
-424 小时
-177 天
-6030 天
帖子存档
13 101
Что такое Docker ?
Спросят с вероятностью 10%
Docker - это платформа для разработки, доставки и запуска приложений в контейнерах. Контейнеры позволяют упаковывать приложения и все их зависимости в единую среду, что делает их переносимыми и масштабируемыми. Эта платформа предоставляет инструменты для создания, развертывания и управления контейнерами, облегчая процесс разработки и упрощая конфигурацию среды выполнения приложений.
Основные концепции Docker включают:
1️⃣ Контейнеры: Нужны для упаковки приложений и их зависимостей в единую среду. Контейнеры изолированы друг от друга и от хост-системы, что обеспечивает надежную и консистентную среду выполнения приложений.
2️⃣ Образы: Шаблоны для создания контейнеров. Они включают в себя все необходимые компоненты приложения и его зависимости. Образы могут быть созданы вручную или автоматически с использованием Dockerfile, который описывает конфигурацию контейнера.
3️⃣ Dockerfile: Текстовый файл, который содержит инструкции для создания образа. Он определяет все этапы установки и настройки приложения в контейнере, что позволяет автоматизировать процесс создания образов.
4️⃣ Реестр Docker: Сервис, который хранит образы. Он позволяет разработчикам делиться образами и использовать их для создания контейнеров на различных хост-системах.
5️⃣ Docker Engine: Основной компонент, который управляет созданием, запуском и управлением контейнерами. Он включает в себя клиентские и серверные компоненты, которые общаются между собой с помощью API.
6️⃣ Docker Compose: Инструмент для определения и запуска многоконтейнерных приложений. Он позволяет определять структуру приложения и его зависимости в файле docker-compose.yml, что упрощает развертывание и управление многочастными приложениями.
Docker облегчает процесс разработки, тестирования и развертывания приложений, обеспечивая консистентную и изолированную среду выполнения для приложений. Он также позволяет масштабировать приложения и обеспечивать их высокую доступность с помощью контейнерной оркестрации, такой как Kubernetes.
➡ Примеры ответов
➡ Список всех вопросов на Python Developer
13 101
Python - первый обучающий!
Погружение в язык, без унылой теории и устаревших материалов.
Более 1000 разных тестов по питону, интерактивные упражнения с кодом и их разбор для подписчиков (топ идея, как нам кажется).
▪️30 лучших бесплатных Python курсов 2024 года
▪️Коллекция полезных скриптов на Python
▪️Скрипты для хакинга
И многое другое
А здесь я собрал супер полезную папку для всех, кто любит Python.
Подписывайтесь, такие знания на все золота: @pythonl
13 101
Материалы из этого канала дают на платных курсах
Frontend Portal — настоящий портал для тех кто хочет стать востребованным frontend-разработчиком. Полезные ресурсы, шпаргалки, разбор вопросов с собеседований, задачи, викторины и многое другое
👉 Присоединяйтесь к @FrontendPortal и станьте частью дружного frontend-комьюнити!
13 101
Какая в Python типизация, статическая или динамичная ?
Спросят с вероятностью 7%
Типизация является динамической, что означает, что типы переменных определяются во время выполнения программы, а не на этапе компиляции. Другими словами, не требуется явно указывать тип переменной при ее объявлении; тип переменной определяется автоматически во время выполнения на основе ее значения.
Пример:
x = 10 # x является целым числом (int) x = "Hello" # x теперь является строкой (str) x = [1, 2, 3] # x теперь является списком (list)Это означает, что переменная
x может содержать значения разных типов в разные моменты времени выполнения программы.
В статической типизации, наоборот, типы переменных должны быть объявлены явно при их объявлении и не могут изменяться во время выполнения программы. Это делает статическую типизацию более строгой и обычно помогает предотвратить некоторые типичные ошибки в коде на этапе компиляции.
➡ Примеры ответов
➡ Список всех вопросов на Python Developer13 101
13 101
Какие существуют типы HTTP запросов и в чем их отличия ?
Спросят с вероятностью 10%
Существует несколько типов HTTP-запросов, каждый из которых выполняет определенную операцию при взаимодействии клиента с сервером. Вот основные из них и их отличия:
1️⃣ GET: Запрашивает представление ресурса. Этот тип запроса используется для получения данных от сервера. Обычно он не должен иметь побочных эффектов на данные на сервере, и его можно кэшировать. Пример использования - получение страницы веб-сайта.
2️⃣ POST: Отправляет данные для обработки на сервере. Обычно используется для отправки данных HTML-формы на сервер для обработки. Этот тип запроса может иметь побочные эффекты на данные на сервере и не должен кэшироваться. Пример использования - отправка формы с данными для создания нового пользователя.
3️⃣ PUT: Загружает содержимое запроса на указанный URI. Если ресурс существует, он перезаписывается. Если ресурс не существует, сервер может создать его с использованием предоставленных данных. Пример использования - обновление существующего ресурса с определенными данными.
4️⃣ DELETE: Удаляет указанный ресурс. Пример использования - удаление записи из базы данных.
5️⃣ PATCH: Применяет частичные модификации к ресурсу. Обычно используется для обновления ресурса с частичными данными. Пример использования - изменение только определенных полей записи в базе данных.
6️⃣ HEAD: Запрашивает заголовки, которые будут возвращены, как если бы был сделан запрос GET, но без тела ответа. Этот тип запроса часто используется для проверки доступности ресурса или получения информации о ресурсе без загрузки его полного содержимого.
7️⃣ OPTIONS: Используется для запроса возможностей и параметров коммуникации для указанного ресурса. Например, сервер может использовать этот тип запроса для сообщения клиенту о поддерживаемых методах запросов или разрешенных заголовках.
8️⃣ TRACE: Используется для тестирования соединения по маршруту к ресурсу. Он выполняет циклический обход маршрутизации, который включает в себя передачу запроса через все узлы маршрута. Этот метод редко используется в реальных приложениях из-за возможности злоумышленного использования.
Каждый из этих типов запросов имеет свои особенности и подходит для определенных сценариев использования.Выбор конкретного типа зависит от требуемого действия и контекста взаимодействия с сервером.
➡ Примеры ответов
➡ Список всех вопросов на Python Developer
13 101
Что известно про иерархию исключений ?
Спросят с вероятностью 7%
Иерархия исключений представляет собой организацию встроенных исключений в иерархическую структуру, которая облегчает обработку ошибок и исключительных ситуаций в программе. Все они наследуются от базового класса
BaseException. Ниже приведена общая иерархия исключений:
1️⃣ BaseException
- Exception
- ArithmeticError
- ZeroDivisionError: Вызывается при делении на ноль.
- OverflowError: Вызывается, когда результат арифметической операции слишком велик для представления.
- FloatingPointError: Вызывается при выполнении недопустимой арифметической операции с плавающей точкой.
- AttributeError: Вызывается при попытке доступа к несуществующему атрибуту объекта.
- EOFError: Вызывается, когда достигнут конец файла.
- IOError: Вызывается при возникновении ошибок ввода-вывода.
- ImportError: Вызывается при неудачной попытке импорта модуля.
- KeyError: Вызывается при попытке доступа к несуществующему ключу словаря.
- TypeError: Вызывается при попытке выполнения операции с объектом несовместимого типа.
- ValueError: Вызывается, когда функция получает аргумент правильного типа, но недопустимого значения.
- RuntimeError: Вызывается в случае внутренней ошибки интерпретатора.
- StopIteration: Вызывается при достижении конца итератора в операциях итерации.
- KeyboardInterrupt: Вызывается при нажатии пользователем комбинации клавиш прерывания (обычно Ctrl+C).
2️⃣ SystemExit: Вызывается при завершении программы с помощью функции sys.exit().
3️⃣ KeyboardInterrupt: Вызывается при прерывании программы пользователем (обычно Ctrl+C).
4️⃣ GeneratorExit: Вызывается при закрытии генератора.
5️⃣ Exception: Базовый класс для всех встроенных исключений.
Использование исключений позволяет ловить и обрабатывать ошибки и исключения в программе, что делает код более надежным и стабильным. Вы можете использовать блоки try, except, else и finally для обработки исключений.
➡ Примеры ответов
➡ Список всех вопросов на Python Developer13 101
Repost from N/a
Ну что, к этому ролику я шел чуть больше года и он готов
https://youtu.be/3SjvLyRzXvo
Много было моментов удалить его и не показывать, за некоторые части рассказа мне действительно стыдно. Но жизнь есть жизнь, может быть она вас убережёт от тех ошибок, которые я наделал
Всем всего хорошего и удачки по жизни❤️
13 101
Ребят, мой кореш выложил видео на YouTube, где рассказывает, как он перешел с работы охранника на Python-разработчика. Это реальная история о том, как можно сменить профессию и найти то, что тебе по-настоящему нравится, даже если кажется, что поздно что-то менять. Видео полезно для тех, кто думает о смене карьеры. Посмотрите, может вдохновит!
13 101
Какие существуют коды ответов HTTP ?
Спросят с вероятностью 10%
HTTP (Hypertext Transfer Protocol) определяет различные коды ответов, которые сервер может отправить клиенту в ответ на запрос. Вот некоторые из наиболее распространенных кодов ответов их общее значение:
1️⃣ 1xx (Информационные коды):
- 100 Continue: Запрос был принят, клиент может продолжать запрос.
- 101 Switching Protocols: Сервер согласился изменить протоколы.
2️⃣ 2xx (Успешные коды):
- 200 OK: Запрос успешно выполнен.
- 201 Created: Запрос успешно выполнен, и был создан новый ресурс.
- 204 No Content: Запрос выполнен успешно, но в ответе нет содержимого.
3️⃣ 3xx (Перенаправления):
- 301 Moved Permanently: Ресурс перемещен на постоянной основе.
- 302 Found: Ресурс временно перемещен.
- 304 Not Modified: Ресурс не был изменен с момента последнего запроса.
4️⃣ 4xx (Коды ошибок клиента):
- 400 Bad Request: Запрос не может быть обработан из-за ошибки в запросе клиента.
- 401 Unauthorized: Клиент должен предоставить аутентификацию для получения доступа к ресурсу.
- 404 Not Found: Ресурс не найден.
5️⃣ 5xx (Коды ошибок сервера):
- 500 Internal Server Error: Общая внутренняя ошибка сервера.
- 503 Service Unavailable: Сервер временно не доступен из-за перегрузки или обслуживания.
Это лишь несколько из множества кодов ответов HTTP. Каждый код имеет свое значение, и их правильное использование позволяет клиенту и серверу взаимодействовать эффективно и информативно.
➡ Примеры ответов
➡ Список всех вопросов на Python Developer
13 101
Какие декораторы есть в стандартной библиотеке ?
Спросят с вероятностью 7%
В стандартной библиотеке есть несколько встроенных декораторов, которые используются для различных целей. Вот некоторые из наиболее часто используемых:
1️⃣ @staticmethod: Используется для объявления статического метода в классе. Они не привязаны к экземпляру класса и могут быть вызваны непосредственно через класс или через экземпляр.
2️⃣ @classmethod: Используется для объявления метода класса. Принимает класс (вместо экземпляра) как первый аргумент и может быть использован для работы с атрибутами класса.
3️⃣ @property: Используется для создания свойства (property) в классе. Это позволяет объявить метод как атрибут класса, который может быть доступен как атрибут экземпляра класса, но в фоне вызывает метод для получения или установки значения.
4️⃣ @abstractmethod: Используется в абстрактных классах для указания метода, который должен быть реализован в подклассах. Если подкласс не реализует этот метод, при попытке создания экземпляра подкласса возникнет ошибка.
5️⃣ @functools.wraps: Используется для копирования метаданных (например, имени функции, документации) из одной функции в другую. Это полезно, когда вы создаете декораторы, которые оборачивают другие функции.
6️⃣ @lru_cache: Используется для кэширования результатов функции с использованием алгоритма "Least Recently Used" (LRU). Это помогает улучшить производительность функций с дорогостоящими вычислениями путем сохранения результатов предыдущих вызовов функции.
Это лишь несколько примеров декораторов, доступных в стандартной библиотеке. Но существует множество других декораторов, реализованных в сторонних библиотеках и фреймворках, которые предоставляют дополнительные возможности и функциональность.
➡ Примеры ответов
➡ Список всех вопросов на Python Developer
13 101
Для чего нужен сериализатор ?
Спросят с вероятностью 10%
Сериализатор - это инструмент, который преобразует объекты в определенном формате в формат, который можно легко сохранить или передать через сеть, и обратно. Обычно это используется для передачи данных между различными программами или процессами, работающими на разных устройствах или языках программирования.
Вот несколько причин, по которым сериализаторы могут быть полезными:
1️⃣ Сохранение и загрузка данных: Сериализация позволяет сохранять данные в файле или в базе данных в виде сериализованного объекта, что упрощает их сохранение и восстановление позже.
2️⃣ Обмен данными между приложениями: Приложения, написанные на разных языках программирования или работающие на разных платформах, могут использовать сериализацию для передачи данных друг другу в стандартизированном формате.
3️⃣ Передача данных по сети: Передача сложных структур данных между клиентом и сервером в сетевых приложениях может быть реализована с использованием сериализации. Например, веб-сервисы часто используют форматы сериализации, такие как JSON или XML, для обмена данными между клиентом и сервером.
4️⃣ Хранение состояния приложения: Сериализация может использоваться для сохранения состояния приложения, например, приложений игр, что позволяет пользователям сохранять свой прогресс и возобновлять игру позже.
5️⃣ Кэширование данных: Сериализация может использоваться для кэширования сложных данных, чтобы ускорить доступ к ним и сократить время обработки в будущем.
Обычно стелизаторы поддерживают различные форматы, такие как JSON, XML, YAML, Pickle и другие, каждый из которых имеет свои особенности и применение в зависимости от конкретной задачи.
➡ Примеры ответов
➡ Список всех вопросов на Python Developer
13 101
Как устроены переменные ?
Спросят с вероятностью 7%
Переменные являются именованными областями памяти, в которых хранятся значения данных. Устройство переменных обычно содержат следующие элементы:
1️⃣ Имя переменной: Это идентификатор, который используется для обращения к значению данных в памяти.
2️⃣ Значение данных: Это фактическое значение, которое хранится в переменной. Может быть целое число, строка, список, объект и так далее, в зависимости от типа данных, который поддерживает язык программирования.
3️⃣ Адрес в памяти: Это место в памяти компьютера, где хранится значение данных переменной. Иногда можно получить адрес переменной с помощью оператора
&.
4️⃣ Тип данных: Это информация о том, какого типа данных содержится в переменной. Тип данных определяет, какие операции могут быть выполнены с переменной и как она хранится в памяти.
5️⃣ Область видимости: Это часть программы, в которой переменная может быть использована. Обычно переменные имеют локальную область видимости в пределах блока кода, в котором они были определены, но также могут иметь глобальную область видимости, доступную во всей программе.
6️⃣ Жизненный цикл: Это период времени, в течение которого переменная существует в памяти. Переменные могут быть созданы, использованы и уничтожены в разное время в зависимости от их области видимости и действий программы.
Обычно переменные управляются средой выполнения языка программирования, которая отвечает за выделение и освобождение памяти, управление областями видимости и обработку других аспектов жизненного цикла переменных.
➡ Примеры ответов
➡ Список всех вопросов на Python Developer13 101
Python компилируемый или интерпретируемый ?
Спросят с вероятностью 13%
Python является интерпретируемым языком программирования, но утверждать, что он полностью интерпретируемый, не совсем верно, поскольку есть некоторые аспекты компиляции.
Процесс выполнения программы обычно выглядит следующим образом:
1️⃣ Интерпретация и компиляция: Исходный код сначала проходит через процесс компиляции в промежуточный байт-код. Это выполняется интерпретатором при запуске программы. В результате компиляции создается файл
.pyc, который содержит байт-код программы.
2️⃣ Исполнение: Затем интерпретатор исполняет этот байт-код последовательно, инструкция за инструкцией. Во время выполнения интерпретатор обрабатывает и выполняет инструкции, предоставляя ожидаемый результат.
Python является интерпретируемым языком с компиляцией в промежуточный байт-код, который затем интерпретируется и выполняется. Этот подход сочетает в себе преимущества интерпретации (гибкость, динамическая типизация) с некоторыми преимуществами компиляции (более быстрое выполнение благодаря использованию байт-кода).
Однако стоит отметить, что существуют и другие реализации Python, такие как PyPy, которые используют JIT (Just-In-Time) компиляцию для более эффективного выполнения кода. Каждая реализация может иметь свои особенности и характеристики в этом отношении.
➡ Примеры ответов
➡ Список всех вопросов на Python Developer13 101
В чем разница между процессом и потоком ?
Спросят с вероятностью 7%
Процессы и потоки - это два основных понятия, используемые в многозадачных системах, таких как операционные системы. Они представляют собой способы организации выполнения программного кода. Вот основные различия между ними:
1️⃣ Процесс:
- Представляет собой отдельный экземпляр программы, запущенный в оперативной памяти компьютера.
- У каждого процесса есть собственное адресное пространство памяти, которое оно использует для выполнения своего кода и хранения своих данных.
- Являются изолированными друг от друга, что означает, что изменения, сделанные в одном процессе, не влияют на другие процессы.
- Обычно создаются операционной системой при запуске новой программы.
2️⃣ Поток:
- Представляет собой легковесный подпроцесс внутри процесса.
- Разделяют общее адресное пространство памяти с другими потоками в рамках одного процесса.
- Имеют свой собственный стек вызовов, но разделяют все остальные ресурсы процесса, такие как файловые дескрипторы, переменные и т. д.
- Могут выполняться параллельно в рамках одного процесса, что позволяет использовать многопоточное программирование для увеличения производительности и ресурсоэффективности.
Основное различие между процессом и потоком заключается в том, что процесс является отдельным исполняемым экземпляром программы с собственным адресным пространством памяти, а поток представляет собой легковесный подпроцесс, который работает в рамках процесса и использует общие ресурсы этого процесса.
➡ Примеры ответов
➡ Список всех вопросов на Python Developer
13 101
Как реализован декоратор ?
Спросят с вероятностью 7%
Декораторы реализованы как функции, которые принимают другую функцию в качестве аргумента и возвращают новую функцию. Это позволяет изменять поведение или добавлять функциональность существующим без изменения их исходного кода. Вот пример простого декоратора:
def my_decorator(func):
def wrapper():
print("Дополнительный код перед вызовом функции")
func()
print("Дополнительный код после вызова функции")
return wrapper
@my_decorator
def say_hello():
print("Привет, мир!")
say_hello()
В этом примере my_decorator является декоратором, который принимает функцию func и возвращает функцию wrapper, которая содержит дополнительный код перед и после вызова функции func. Затем мы используем декоратор @my_decorator, чтобы применить его к функции say_hello.
Это простейший пример декоратора. В более сложных случаях декораторы могут принимать аргументы и использоваться для различных целей, таких как кеширование, логирование, обработка исключений и т. д. Декораторы широко используются и являются мощным механизмом для добавления функциональности к коду без его модификации.
➡ Примеры ответов
➡ Список всех вопросов на Python Developer13 101
3, 2 … Остановимся здесь. 🐍
Потому что 2 недель достаточно, чтобы познакомиться с основами Python и понять, подходит ли вам это направление!
Не обещаем, что будет легко, но интересно, полезно и недорого (всего 990 рублей!) — гарантируем.
Расклад такой: мы даем вам базу — больше 70 уроков, вебинары, лайвкодинг, а вы пишете собственную программу.
Если переживайте — не переживайте :) Рядом всегда будет наставник, готовый ответить на любой ваш вопрос.
⏰ Старт курса уже 21 марта, присоединяйтесь!
13 101
Что такое slots ?
Спросят с вероятностью 13%
slots - это механизм, который позволяет явно определить ограниченный набор атрибутов (полей) для экземпляров класса. Обычно атрибуты экземпляров создаются динамически при их присваивании, что может приводить к потреблению памяти, особенно при работе с большим количеством экземпляров класса.
Когда вы определяете slots для класса, то определяете фиксированный набор атрибутов, которые могут существовать для экземпляров этого класса. Это позволяет экономить память и улучшать производительность, особенно в случае, когда у вас есть много экземпляров класса.
Пример:
class MyClass:
slots = ['x', 'y']
def init(self, x, y):
self.x = x
self.y = y
obj = MyClass(10, 20)
print(obj.x) # Вывод: 10
print(obj.y) # Вывод: 20
# Попытка присвоить атрибут, не определенный в slots, вызовет ошибку
# obj.z = 30 # Вызовет AttributeError
В этом примере у класса MyClass есть определение slots, которое ограничивает атрибуты экземпляра класса только x и y. Попытка присвоить значение атрибуту z вызовет ошибку AttributeError.
Важно отметить, что использование slots может иметь смысл только в тех случаях, когда вы уверены, что ограничение набора атрибутов не вызовет проблем в приложении.
➡ Примеры ответов
➡ Список всех вопросов на Python Developer13 101
Бесплатный мини-курс для тех, кто интересуется Python! Минимум скучной теории — больше мощной практики на реальных задачах разработчиков. Один мини-курс — сразу 4 проекта в портфолио!
Запись по ссылке: https://epic.st/klc4K?erid=2VtzquyBwoJ
За 4 занятия вы изучите видеоматериалы. После каждого видео есть практическое задание.
— Разберёте базовый синтаксис языка
— Создадите бота для Telegram, который умеет переводить голос в текст
— Сделаете бота умнее — научите его обрабатывать фотографии
— Узнаете, как парсить сайты
— Напишете сайт с помощью инструмента Flask
В финале мини-курса вас ждёт прямой эфир с экспертом Анастасией Борневой — руководителем направления по исследованию данных в «Сбере». В прямом эфире она поделится профессиональными секретами, разберёт ваши работы и ответит на вопросы.
Вас ждут крутые подарки: чек-листы, гайды, скринкасты и другие бонусы.
Откройте новые возможности!
Реклама. ЧОУ ДПО «Образовательные технологии «Скилбокс (Коробка навыков)», ИНН: 9704088880
13 101
В чем разница между copy() и deepcopy() ?
Спросят с вероятностью 7%
Функции
copy() и deepcopy() используются для создания копий объектов, но есть существенная разница в том, как они копируют вложенные объекты.
1️⃣ copy():
- Создает поверхностную копию объекта. Это означает, что копируется только сам объект и его первый уровень вложенных объектов, но не их вложенные объекты.
- Если вы измените вложенные объекты в исходном объекте, эти изменения будут отражены и в его копии, так как они оба будут ссылаться на одни и те же вложенные объекты.
- Используется, когда вам нужна поверхностная копия объекта, и вы уверены, что вложенные объекты не будут изменяться.
2️⃣ deepcopy():
- Создает глубокую копию объекта. Это означает, что копируются как сам объект, так и все его вложенные объекты, рекурсивно, до тех пор, пока не будут скопированы все объекты внутри объекта.
- Глубокая копия полезна, когда вам нужно создать копию объекта, включая все его вложенные объекты, и вы не хотите, чтобы изменения в исходном объекте отражались на его копии и наоборот.
- Однако глубокие копии могут быть более затратными по памяти и времени, особенно если объект содержит много вложенных объектов.
Пример использования copy() и deepcopy():
import copy
original_list = [1, [2, 3], 4]
shallow_copy = copy.copy(original_list)
deep_copy = copy.deepcopy(original_list)
original_list[1][0] = 5 # Изменение вложенного списка
print(original_list) # Вывод: [1, [5, 3], 4]
print(shallow_copy) # Вывод: [1, [5, 3], 4]
print(deep_copy) # Вывод: [1, [2, 3], 4]
В этом примере shallow_copy является поверхностной копией original_list, а deep_copy — глубокой копией. При изменении вложенного списка в original_list это отражается на shallow_copy, но не на deep_copy.
➡ Примеры ответов
➡ Список всех вопросов на Python Developer
现已上线!2025 年 Telegram 研究 — 年度关键洞察 
