popov . dev

Main

Library

Questions

Проверка несколь...

Проверка нескольких значений в Python

В программе есть сразу три флага или настройки, которые мне нужно проверить. Собственно, вот код и как я выполняю проверку:

setting_enabled = 0
setting_visible = 1
setting_public = 0

if setting_enabled == 1 or setting_visible == 1 or setting_public == 1:
    print('Действие')
Есть способ как-то сделать это изящнее?

Answers

Денис Попов

Из логики понял, что необходимо чтобы хотя бы один параметр из трех соответствовал значению 1. Тогда можно воспользоваться ключевым словом in:

setting_enabled, setting_visible, setting_public = 0, 1, 0

if 1 in (setting_enabled, setting_visible, setting_public):
    print('Действие')
Учитывая, что в булевой логике 0 это False, а 1 это True можем воспользоваться тем же что и при логических выражениях:
if setting_enabled or setting_visible or setting_public:
    print('Действие')
Или использовать метод any, он здесь весьма кстати будет:
if any((setting_enabled, setting_visible, setting_public)):
    print('Действие')

03.06.24 at 12:56