Оператор по модулю на множестве Python - PullRequest
3 голосов
/ 12 июля 2020

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

if value > 2 and value % 2 == 0 or value % 3 == 0 or value % 5 == 0 or value % 7 == 0 or value % 11 == 0: 
    return False

Как объединить все эти операторы «или» в нечто более элегантное, например «and value % set == 0»?

Ответы [ 4 ]

4 голосов
/ 12 июля 2020

Вы можете использовать any(...):

value = 100

if value > 2 and (any(value % x == 0 for x in [2, 3, 5, 7, 11])):
    print(False)
1 голос
/ 12 июля 2020

Используйте any, который

Возвращает True, если bool (x) имеет значение True для любого x в итерируемом

checks = {2, 3, 5, 7, 9}
if value > 2 and any(value % check == 0 for check in checks):
    return False
0 голосов
/ 12 июля 2020

Попробуйте следующее:

def Fun(value):
    if value > 2 and any([value%x==0 for x in [2, 3, 5, 7, 11]]):
        return False
    return True
0 голосов
/ 12 июля 2020
numbers = [2, 3, 5, 7, 11]

value = #define value here

def modulo():
    for number in numbers:
        if value > 2:
            if value % number == 0:
                return False

modulo()
...