⌛ Что будет выведено при выполнении кода?
Пояснение ⬇️
Counter из collections подсчитывает количество повторений каждого элемента в data. Значение для 'apple' равно 3. Для отсутствующего ключа ('grape') возвращается 0, а не KeyError.
⚙️ weakref.ref()weakref.ref()
из модуля weakref
создаёт слабую ссылку на объект. Слабая ссылка не увеличивает счётчик ссылок объекта, позволяя ему быть удалённым сборщиком мусора, если больше нет сильных ссылок на него.
Python Learning 👩💻
⚙️ ast.literal_eval()
Метод ast.literal_eval()
из модуля ast
безопасно вычисляет выражения Python из строки. Это полезно для обработки данных из текстовых файлов или ввода, где требуется парсинг структур данных, таких как списки, словари или числа.
Python Learning 👩💻
⚙️ sys.getsizeof()
Метод sys.getsizeof()
позволяет узнать размер объекта в памяти, включая дополнительные данные, связанные с этим объектом. Это полезно для анализа потребления памяти в приложении.
Python Learning 👩💻
🌐Хотите создать веб-приложение, но не знаете, с чего начать?
📖На открытом уроке «Создание веб-приложения на Django за 1 час» вы сделаете первый шаг в мире веб-разработки. Мы начнём с идеи и за час создадим работающий проект.
⚙️Настроим окружение, создадим модель данных, разберёмся с админ-панелью и выведем результат на экран. Вы увидите, что программирование на Python — это просто, если за дело берутся профессионалы!
👉Присоединяйтесь 25 декабря в 20:00 мск и получите скидку🥳 на участие в большом курсе «Python Developer. Basic»: https://clck.ru/3FMMQR
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
➡️ Интересный факт о языке: Множественное присваивание
Множественное присваивание позволяет в одной строке присвоить значения сразу нескольким переменным. Также это позволяет легко обменивать значения между переменными без использования временной переменной.
Как это работает:•
Справа от знака =
создаётся кортеж значений.•
Эти значения распаковываются и присваиваются переменным слева.
Python Learning 👩💻
❓ Вопрос на собеседовании
Что такое yield from
в Python и как оно помогает при работе с большими наборами данных?
Ответ ⬇️
yield from используется для делегирования работы с подгенераторами в Python. Это позволяет "плоско" и эффективно обрабатывать вложенные данные, избегая лишних циклов и улучшая производительность.
Пример использования ⚙️
def flatten(nested_list):
for item in nested_list:
if isinstance(item, list):
yield from flatten(item) # Делегирует генерацию к вложенному списку
else:
yield item
nested_list = [1, [2, [3, 4], 5], 6]
for num in flatten(nested_list):
print(num)
⌛ Что будет выведено при выполнении кода?
Пояснение ⬇️
Функция generator возвращает 1 и 2 с помощью yield. При следующем вызове next(gen) выполняется return 3, вызывая StopIteration с атрибутом value равным 3. Это значение доступно через e.value.
Напоминаю, что у нас есть свой чат, где вы можете задать свой вопрос
/channel/Chat_for_Python
🤔 Как это работает? — Python: List Comprehension
List comprehension — это мощный способ создавать списки в Python одной строкой. Давайте разберём, как работает этот синтаксис.
➡️ Как это работает:• range(10)
генерирует числа от 0 до 9.•
Для каждого числа x
из range(10)
выполняется выражение x**2
, которое возводит x
в квадрат.•
Результаты собираются в список squares
.
Развернутый аналог:
squares = []
for x in range(10):
squares.append(x**2)
print(squares) #[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
⚙️ shutil.copy()
Функция shutil.copy()
из модуля shutil
позволяет копировать файлы из одного места в другое. Это удобно для работы с файлами и создания резервных копий.
Python Learning 👩💻
🔵 Практический интенсив «Python-разработчик: основы за 2 дня» — 16 - 17 декабря в 19:00 мск.
О перспективах направления Python и многом другом расскажет Рафаэль Мухаметшин, Middle Бэкенд-разработчик в «ПИК Digital» с опытом в разработке более 3 лет.
На вебинаре вы:
☑️ Самостоятельно напишете Telegram-бота в формате консольного приложения.
☑️ Познакомитесь с синтаксисом языка и сферами его применения.
☑️ Изучите рекомендации по продолжению обучения и развитию карьеры Backend-разработчика на Python.
☑️ Узнаете, чего ждут работодатели от junior-разработчиков и что делать, чтобы найти работу без опыта.
🎁 Приятные бонусы - карта компетенций начинающего Python-разработчика и гайд «Как заговорить на сленге IT-специалистов» всем участникам интенсива!
Реклама. ООО "ХЕКСЛЕТ РУС". ИНН 7325174845. erid:LjN8KMaNx
⚙️ itertools.chain()
Функция itertools.chain()
позволяет объединить несколько итерируемых объектов в один. Это полезно, когда нужно работать с несколькими списками или другими коллекциями без явной конкатенации.
Python Learning 👩💻
⚙️ memoryview()memoryview()
— это встроенный метод Python, который позволяет работать с буфером данных без их копирования. Это полезно для работы с большими массивами данных, таких как байты или массивы, где важна производительность.
Python Learning 👩💻
⚙️ Улучшение работы со строками
Конкатенация строк через +
в цикле создаёт множество временных объектов, что замедляет выполнение программы. Вместо этого используйте join()
.
❌ Проблема: При конкатенации строк через +
создаётся новый объект строки на каждом шаге.
✔️ Решение: Используйте str.join()
, который работает быстрее, так как заранее выделяет память для итоговой строки.
Python Learning 👩💻
❓Вы когда-нибудь хотели стать лучшей версией себя?
Применять SQLAlchemy эффективнее — быстрее, лучше, умнее!
23 декабря, 20:00 мск — открытый урок для Python-разработчиков.
📒Что делать, если методы, использующие SQLAlchemy и СУБД, тормозят? Когда оптимизация внутри SQLAlchemy — благо, а когда — беда? Как создать удобную панель администрирования поверх SQLAlchemy?
Спикер Дмитрий Панкрашов — ведущий разработчик в компании-партнере вендора СЭД «Директум».
🟢Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://otus.pw/SrB3/
Все участники открытого урока получат скидку на курс "Python Developer. Professional"
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
⚙️ inspect.getsource()
Метод inspect.getsource()
из модуля inspect
позволяет получить исходный код функции, класса или метода. Это полезно для анализа кода во время выполнения или создания инструментов для отладки и документации.
Python Learning 👩💻
⌛ Что будет выведено при выполнении кода?
Пояснение ⬇️
Класс D наследуется от B и C. Вызов d.greet() ищет метод greet согласно MRO. Порядок поиска: D -> B -> C -> A. Поэтому вызывается метод greet из класса B.
⚙️ zip()
Функция zip()
в Python используется для объединения нескольких итерируемых объектов (например, списков) в один итератор кортежей. Каждый кортеж содержит элементы, которые находятся на одинаковых позициях в исходных итерируемых объектах.
Python Learning 👩💻
⚙️ sys.intern()
В Python функция sys.intern()
оптимизирует хранение строк, создавая их в единственном экземпляре в памяти (интернирование). Это ускоряет сравнение строк за счёт сравнения ссылок, а не их содержимого.
Python Learning 👩💻
⚙️ sys.setrecursionlimit()
В Python функция sys.setrecursionlimit()
позволяет изменить максимальную глубину рекурсии. Это полезно для задач с глубокой рекурсией, таких как обход деревьев или выполнение сложных алгоритмов.
Python Learning 👩💻
❌ Антипаттерн недели: Использование изменяемых объектов по умолчанию
Использование изменяемых объектов (например, списков или словарей) в качестве значений по умолчанию для аргументов функции может привести к неожиданному поведению.
Значение по умолчанию ([]
) создаётся один раз при определении функции и используется повторно для всех вызовов. Поэтому изменения сохраняются между вызовами функции.
✔️ Как исправить:
Используйте None
и создавайте новый список внутри функции:
def add_item(item, items=None):
if items is None:
items = []
items.append(item)
return items
print(add_item(1)) # [1]
print(add_item(2)) # [2] — теперь всё работает правильно!
⚙️ inspect.signature()
В Python функция inspect.signature()
из модуля inspect
позволяет получать информацию о сигнатуре функций и методов. Это полезно для анализа кода во время выполнения, например, для отладки или динамического вызова функций.
Python Learning 👩💻
PyOxidizer
PyOxidizer — это инструмент, позволяющий упаковать Python-проект в единый исполняемый файл, включающий интерпретатор Python, все необходимые библиотеки и ресурсы. Это позволяет запускать ваши приложения без необходимости предварительной установки Python или каких-либо зависимостей.
Python Learning 👩💻
⚙️ difflib.get_close_matches()
В Python функция difflib.get_close_matches()
находит наиболее похожие строки из списка на основе заданного шаблона. Это удобно для реализации поиска, проверки орфографии или подсказок для ввода.
Python Learning 👩💻
❓ Вопрос на собеседовании
Что такое dataclass
в Python, как работает параметр init=False
и зачем он нужен?
Ответ ⬇️
dataclass — это декоратор из модуля dataclasses, который упрощает создание классов для хранения данных, автоматически генерируя методы, такие как __init__, __repr__, и __eq__. Параметр init=False позволяет исключить атрибут из автоматически сгенерированного конструктора __init__. Это полезно для атрибутов, которые не должны передаваться при создании экземпляра, например, для вычисляемых значений или внутренних данных.
Пример использования ⚙️
from dataclasses import dataclass, field
@dataclass
class Product:
name: str
price: float
discount: float = field(init=False) # Исключаем из __init__
def __post_init__(self):
self.discount = self.price * 0.1 # Вычисляем скидку после инициализации
# Создание экземпляра
item = Product(name="Laptop", price=1000)
print(item) # Product(name='Laptop', price=1000, discount=100.0)
🔒 Частное облако SpaceWeb — полный контроль и безопасность для вашего бизнеса
Создавайте изолированные среды для корпоративных приложений и данных. Наше частное облако сочетает максимальную безопасность, гибкость и легкость управления. Идеально подходит для тех, кто ценит конфиденциальность и защиту.
💼 Ваши данные — под надежной защитой, доступ к ним — в любое время, в любой точке мира.
Хотите узнать больше? Подпишитесь на канал SpaceWeb и будьте в курсе всех новинок в мире облачных технологий!
Реклама.ООО "СпейсВэб". ИНН: 7813376370 erid: 2VtzqwKzQ8h
⚙️ collections.ChainMap
В Python класс collections.ChainMap
объединяет несколько словарей в одну структуру, позволяя искать ключи сразу во всех словарях. Это удобно для объединения настроек или конфигураций.
Python Learning 👩💻