← Все вопросы
Как проверить, что число делится на любое из чисел в списке?
4
Есть число и список делителей, например [2, 3, 7]. Надо понять, делится ли число хотя бы на один из них. Писать кучу if ... or ... or ... некрасиво. Есть способ покороче?
1 ответ
8
✓ Принятый ответ — помог автору
Тут идеально подходит any() с генератором — он проверяет «выполнено ли условие хоть для одного элемента»:
n = 21
divisors = [2, 3, 7]
if any(n % d == 0 for d in divisors):
print('делится хотя бы на один')
21 делится на 3 и на 7, так что выведет сообщение.
Если нужно наоборот — «делится на все», бери all() вместо any(). Это намного чище, чем длинная цепочка or/and.
Ваш ответ
, чтобы ответить на вопрос.