← Все вопросы

Как проверить, что число делится на любое из чисел в списке?

Задан 31 месяц назад753 просмотров1 ответ
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.

Ваш ответ

, чтобы ответить на вопрос.