Python Learning
34.6K subscribers
1.91K photos
8 videos
7 files
913 links
№ 4974297878

Обучающий канал по Python

Ссылка для друга - https://yangx.top/+I7jrAQKR5xAyYTAy

По всем вопросам @mascarov_valentin

Реклама на бирже - https://telega.in/c/Python_per_month
加入频道
⚙️ functools.partial

В Python функция functools.partial() позволяет создавать новую функцию с заранее зафиксированными значениями некоторых аргументов. Это удобно для упрощения вызовов функций с часто используемыми параметрами.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19❤‍🔥1
Что будет выведено при выполнении кода?

Пояснение
⬇️
Метод __enter__ выполняется при входе в блок with, выводя Entering. Значение "Context Active" возвращается в переменную ctx и выводится. Исключение ValueError возникает, но перед этим вызывается __exit__, выводящий Exiting. Затем исключение не подавляется, и программа завершится с сообщением об ошибке.


Python Learning
👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤‍🔥1
⚙️ functools.lru_cache

В Python декоратор functools.lru_cache кэширует результаты вызовов функции, что позволяет ускорить выполнение повторяющихся вычислений. Это удобно для оптимизации функций с дорогостоящими вычислениями.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18❤‍🔥2
⚙️ heapq.heappush() и heapq.heappop()

В Python модуль heapq предоставляет функции для работы с кучами (heap) — структурами данных для управления приоритетами. heappush() добавляет элемент в кучу, а heappop() удаляет наименьший элемент.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15❤‍🔥2
⚙️ min() и max()

В Python функции min() и max() используются для нахождения минимального и максимального значений в итерируемых объектах. Эти функции поддерживают кастомные критерии сравнения.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22❤‍🔥1
Вопрос на собеседовании

Что такое генераторы Python, как работает метод send() в генераторах, и как его можно использовать для управления их поведением?

Ответ ⬇️
Генераторы в Python — это функции, которые используют yield для возврата значения и приостановки выполнения. Метод send() позволяет отправлять данные обратно в генератор, которые затем могут быть использованы внутри генератора при следующем возобновлении. Это делает генераторы двусторонними, позволяя не только получать значения, но и передавать данные в них.

Пример использования ⚙️
def interactive_generator():
value = yield "Начало" # Возвращаем начальное значение
while value:
value = yield f"Вы отправили: {value}" # Возвращаем обработанное значение

gen = interactive_generator()
print(next(gen)) # "Начало"
print(gen.send("Привет")) # "Вы отправили: Привет"
print(gen.send("Python")) # "Вы отправили: Python"
gen.close() # Завершаем генератор


Python Learning
👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20❤‍🔥2
⚙️ vars()

В Python функция vars() возвращает словарь атрибутов объекта или локальные переменные, если объект не указан. Это удобно для работы с объектами или отладки.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤‍🔥2
👩‍💻 Задача по Python: Подсчёт частоты символов в строке

Напишите функцию, которая принимает строку и возвращает словарь, где ключи — это символы строки, а значения — количество их вхождений.

Пример:

result = count_char_frequency("hello world")
print(result)
# Ожидаемый результат:
# {'h': 1, 'e': 1, 'l': 3, 'o': 2, ' ': 1, 'w': 1, 'r': 1, 'd': 1}


Решение задачи на картинке ☝️

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18❤‍🔥2
Wooey

Wooey — это библиотека Python, которая позволяет создавать простые веб-интерфейсы для ваших скриптов командной строки. Она является мощным инструментом для повышения доступности, улучшения удобства использования и сбора данных.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤‍🔥2
Что будет выведено при выполнении кода?

Пояснение
⬇️
Класс Counter реализует интерфейсы __iter__ и __next__, превращая объект в итератор. Итератор начинает с 1 и увеличивает значение на каждом шаге, пока не достигнет 3. После этого выбрасывается исключение StopIteration, которое завершает цикл.


Python Learning
👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤‍🔥3
👍17🤔5🏆4❤‍🔥1😢1🍾1
⚙️ setattr()

В Python функция setattr() позволяет динамически устанавливать значение атрибута объекта. Это полезно, если имя атрибута известно только во время выполнения программы.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤‍🔥2
⚙️ isinstance()

В Python функция isinstance() проверяет, является ли объект экземпляром указанного класса или его подкласса. Это удобно для проверки типов во время выполнения.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23❤‍🔥1
⚙️ eval()

В Python функция eval() выполняет строку как Python-код. Это мощный инструмент для динамического выполнения выражений, но его следует использовать с осторожностью.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18😱6❤‍🔥2
😁

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
😁61👍8❤‍🔥3
Вопрос на собеседовании

Что такое контекстные переменные (contextvars) в Python, как они работают и где применяются?

Ответ ⬇️
Контекстные переменные (contextvars) — это механизм, введённый в Python 3.7, который позволяет хранить и изолировать данные для каждого потока выполнения. Они особенно полезны в асинхронных приложениях, где глобальные переменные могут быть небезопасны из-за возможного пересечения данных между задачами. В отличие от локальных переменных потоков (threading.local), contextvars работают корректно в асинхронных средах, таких как asyncio.

Пример использования ⚙️
import contextvars
import asyncio

# Создаём контекстную переменную
user_context = contextvars.ContextVar('user')

async def task(name):
user_context.set(name) # Устанавливаем значение
await asyncio.sleep(1) # Эмуляция асинхронной задачи
print(f"Текущий пользователь: {user_context.get()}")

async def main():
await asyncio.gather(task("


Python Learning
👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥5
⚙️ collections.deque

В Python класс collections.deque предоставляет двустороннюю очередь с эффективным добавлением и удалением элементов с обоих концов. Это полезно для реализации очередей, стеков и буферов.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤‍🔥5
⚙️ re.findall()

В Python функция re.findall() из модуля re находит все совпадения с заданным регулярным выражением в строке и возвращает их в виде списка. Это удобно для извлечения данных из текста.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19❤‍🔥1🔥1
Что будет выведено при выполнении кода?

Пояснение
⬇️
Список lst — изменяемый тип, и изменения внутри функции влияют на оригинальный объект, поэтому 4 добавляется к списку. Переменная n — неизменяемый тип (int), поэтому увеличение num на 1 не изменяет оригинальный n.


Python Learning
👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
👍10❤‍🔥5🏆4