и посмотреть медиа
Python Вопросы собесов - тесты
и посмотреть медиа
Вопросы, тесты и задачи для Python собеседований.
Вопросы, тесты и задачи для Python собеседований.
AI бот для озвучки текста и клонирования голоса в Telegram. Создавай аудио с помощью нейросети быстро и просто.
Канал с вопросами для собеседований по Python. Тесты, задачи и материалы для подготовки.
🤔 В чем отличие изменяемые / неизменяемые? В Python все данные делятся на изменяемые (mutable) и неизменяемые (immutable) 🚩Неизменяемые (`immutable`) типы После создания их нельзя изменить! x = 10 print(id(x)) # 140735598722544 (адрес в памяти) x = x + 5 # Создаётся новый объект! print(id(x)) # 140735598722704 (новый адрес) Пример: str неизменяемая s = "hello" print(id(s)) # 140735598723664 s = s + " world" # Создаётся новая строка! print(id(s)) # 140735598724240 (новый адрес) 🚩Изменяемые (`mutable`) типы Можно менять их содержимое без создания нового объекта. lst = [1, 2, 3] print(id(lst)) # 140735598722544 lst.append(4) # Изменяем список print(id(lst)) # 140735598722544 (адрес остался тот же!) Пример: dict изменяемый d = {"name": "Alice"} print(id(d)) # 140735598723664 d["age"] = 25 # Добавляем ключ print(id(d)) # 140735598723664 (адрес не изменился!) 🚩Почему это важно? Неизменяемые объекты безопаснее для ключей dict и set d = {} d[[1, 2, 3]] = "Ошибка!" # ❌ TypeError: unhashable type: 'list' Используем tuple вместо list (он неизменяемый) d[(1, 2, 3)] = "OK" Ошибки с изменяемыми значениями по умолчанию def add_item(lst=[]): # ❌ Опасный код! lst.append(1) return lst print(add_item()) # [1] print(add_item()) # [1, 1] ❌ Список не создаётся заново! Используем None вместо списка def add_item(lst=None): if lst is None: lst = [] lst.append(1) return lst 🚩Копирование объектов (`copy()` vs `deepcopy()`) copy() делает поверхностную копию (новый объект, но старые вложенные элементы). deepcopy() делает глубокую копию (всё новое). import copy lst1 = [[1, 2, 3], [4, 5, 6]] lst2 = copy.copy(lst1) # Поверхностная копия lst2[0][0] = 99 print(lst1) # [[99, 2, 3], [4, 5, 6]] ❌ Исходный список изменился! Используем deepcopy() для полной независимой копии lst3 = copy.deepcopy(lst1) lst3[0][0] = 100 print(lst1) # [[99, 2, 3], [4, 5, 6]] ✅ Не изменился! Ставь 👍 и забирай 📚 Базу знаний
Открыть канал и посмотреть медиаТолько зарегистрированные пользователи могут делиться своим мнением.
Станьте первым, кто поделится своим впечатлением об этом ресурсе!
Канал с новостями ZigStar: wiki, обсуждения и актуальная информация.
Новости платформы BI.ZONE Bug Bounty: находи баги и получай вознаграждения. Полезно для этичных хакеров и специалистов по безопасности.