Функция itertools.chain позволяет объединить несколько итерируемых объектов, чтобы работать с ними, как с единым целым:
from itertools import chain
print(list(chain(['a', 'b'], r…
Читать далее →
Базовые методы машинного обучения уже не дают полного ответа на рабочие задачи? Временные ряды, рекомендательные системы, Байесовские методы и обучение с подкреплением требуют друг…
Читать далее →
В Python блок else можно использовать не только после if, но и после циклов for и while.
В Python блок else можно использовать не только после if, но и после циклов for и while. Код внутри else выполняется только в том случае, если цикл завершился естественным образом, то есть не был прерван с помощью break.
Наиболее распространённый случай использования этого — поиск элемента в цикле с прерыванием через break, если элемент найден:
# Пример 1: Список содержит нечётное число
first_odd = None
for x in [2, 3, 4, 5]:
if x % 2 == 1: # Проверяем, является ли число нечётным
first_odd = x
break # Прерываем цикл, так как элемент найден
else:
raise ValueError('No odd elements in list') # Выполнится, если цикл завершился без break
print(first_odd) # Результат: 3
Если в списке нет подходящего элемента, цикл завершается естественным образом, и выполняется блок else:
# Пример 2: Список не содержит нечётных чисел
for x in [2, 4, 6]:
if x % 2 == 1:
first_odd = x
break
else:
raise ValueError('No odd elements in list') # Исключение будет поднято
# ValueError: No odd elements in list
👉 @BookPython
Когда вы создаете кастомный метод __repr__ для объекта, обычно нужно включить представление его атрибутов. Однако важно помнить, что нужно явно вызывать repr(), так как форматирова…
Читать далее →
Тесты могут требовать временные файлы или директории. Для этого отлично подойдет модуль tempfile.
Так как временные файлы обычно нужно удалять после использования, tempfile предос…
Читать далее →