Вы также можете использовать sum
здесь:
sum(a, b, c) in {0, 1, 3}
В качестве примера функции:
def check(*args):
return sum(args) in {0, 1, len(args)}
for a in [True, False]:
for b in [True, False]:
for c in [True, False]:
print(a, b, c, ":", check(a, b, c))
Какая печать:
True True True : True
True True False : False
True False True : False
True False False : True
False True True : False
False True False : True
False False True : True
False False False : True
Если вам нужночтобы убедиться, что аргументы обрабатываются как истинные значения, просто используйте удобную функцию карты денди:
return sum(map(bool, args)) in {0, 1, len(args)}