Как выбрать число выполненного условия
Допустим у меня есть код if a or b: и мне нужно сделать так, чтобы если выполнялось первое условие (а), то с = 0, а если второе условие (b), то с = 1, как можно это реализовать?
Ответы (2 шт):
Автор решения: MarianD
→ Ссылка
Невозможно определить, если правдивым было a или b (или оба a и b), зная только то, что a or b правдиво.
Нужно дальше тестировать, например на правдивость a:
if a or b:
c = 0 if a else 1
или с тем же самым результатом, но не так компактно
if a or b:
if a:
c = 0
else:
c = 1
Или возможно целиком пропустить тест на a or b:
if a:
c = 0
if b:
c = 1
Автор решения: txello
→ Ссылка
Есть множество вариантов записать это.
# Первый вариант
if a:
c = 0
elif b:
c = 1
# Второй вариант
if a or b:
c = 0 if a else 1
# Третий вариант
if a or b:
if a:
c = 0
else:
c = 1
# Четвертый вариант (Внутри функции)
if a or b:
if a:
return a
return b
# Пятый вариант (Синтаксис: True if условие else False )
c = (0 if a else 1) if a or b else 0
# Шестой вариант (Синтаксис: (False,True)[условие] )
c = (0,1)[(a,b)[a or b]]
Последние варианты как самые быстрые и стабильные, но написаны под разные ответы при одинаковых условиях
# Пятый вариант
0 - True и False
1 - False и True
0 - False и False
0 - True и True
# Шестой вариант
0 - True и False
1 - False и True
0 - False и False
1 - True и True