Python вопросы с собеседований
25K subscribers
543 photos
24 videos
17 files
431 links
Вопросы с собеседований по Python

@workakkk - админ

@machinelearning_interview - вопросы с собесдований по Ml

@pro_python_code - Python

@data_analysis_ml - анализ данных на Python

@itchannels_telegram - 🔥 главное в ит

РКН: clck.ru/3FmrFd
Download Telegram
🖥 Полезный трюк: Полезный трюк: временно фиксируйте генераторы случайных чисел в блоке кода и автоматически возвращайте их состояние.

Это даёт воспроизводимость экспериментов без глобальных побочек. С


from contextlib import contextmanager

@contextmanager
def temp_seed(seed: int):
# Сохраняем состояния
py_state = random.getstate()
try:
import numpy as np
np_state = np.random.get_state()
except Exception:
np = None
np_state = None
try:
import torch
torch_state = torch.random.get_rng_state()
torch_cuda_state = torch.cuda.get_rng_state_all() if torch.cuda.is_available() else None
except Exception:
torch = None
torch_state = torch_cuda_state = None

# Устанавливаем семена
random.seed(seed)
if np: np.random.seed(seed)
if torch:
torch.manual_seed(seed)
if torch.cuda.is_available():
torch.cuda.manual_seed_all(seed)
try:
yield
finally:
# Восстанавливаем состояния
random.setstate(py_state)
if np_state is not None: np.random.set_state(np_state)
if torch_state is not None: torch.random.set_rng_state(torch_state)
if torch_cuda_state is not None and torch.cuda.is_available():
torch.cuda.set_rng_state_all(torch_cuda_state)

# Пример использования
if __name__ == "__main__":
import numpy as np

with temp_seed(123):
print("Блок A:", random.random(), np.random.randint(0, 10))
with temp_seed(123):
print("Блок B:", random.random(), np.random.randint(0, 10)) # те же значения
print("Вне блока:", random.random()) # обычный глобальный поток случайности
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍5🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 НЕОЧЕВИДНЫЙ ТРЮК: ускоряй циклы в Python без лишнего кода с помощью itemgetter

Если ты часто итерируешь по списку словарей и достаёшь одни и те же поля — ты можешь заметно ускорить код, заменив lambda на operator.itemgetter. Это не только делает код чище, но и работает быстрее за счёт оптимизации на уровне C.

Полезно, например, при сортировке, группировке или фильтрации данных.

https://www.youtube.com/shorts/55V7jgTrcBA
4👍4🔥1
🐍 Полезный совет по Python: используйте with open() вместо ручного закрытия файлов

Начинающие часто пишут так:


f = open("data.txt", "r")
data = f.read()
f.close()


Код рабочий, но если внутри произойдёт ошибка — файл может не закрыться. Это приведёт к утечкам ресурсов.

🚀 Правильный способ — использовать контекстный менеджер with open()


with open("data.txt", "r") as f:
data = f.read()



💡 Преимущества:

Файл закрывается автоматически, даже если произойдёт ошибка

Код становится короче и чище

Работает одинаково для чтения, записи и бинарных файлов

📊 Пример записи:

with open("output.txt", "w") as f:
f.write("Hello, Python!")


После выхода из блока with файл гарантированно закрыт, ничего вручную делать не нужно.

📌 Итог
Используйте with open() всегда, когда работаете с файлами. Это безопаснее, чище и надёжнее, чем open() + close().
👍10🔥32😁1🤩1