использование IFF в python
есть ли способ написать заявление iff(i.e если и только если) в python. Я хочу использовать его как в
for i in range(x)
iff x%2==0 and x%i==0:
нет iff оператор в Python. Википедия определяет таблица правды для iff а это:
a | b | iff a and b
-----------------------
T | T | T
T | F | F
F | T | F
F | F | T
как это сделать в Python?
5 ответов
по данным Википедия:
обратите внимание, что это равносильно, что произведенные XNOR гейт, и напротив, вырабатывается схема исключающее ИЛИ.
Если это то, что вы ищете, вы просто хотите этого:
if not(x%2 == 0 ^ x%i == 0):
Если вы посмотрите на таблица правды для IFF, вы можете видеть, что (P iff q) истинно, когда оба p и q истинны или оба ложны. Это то же самое, что проверка равенства, поэтому в коде Python вы скажете:
if (x%2==0) == (x%i==0):
предыдущие ответы решают проблему.
в качестве пояснения к этому:if оператор принимает только один вход, а не несколько. Поэтому, когда вы делаете if blah and bleh:, Это эквивалентно if (blah and bleh):. Выражение blah and bleh сначала оценивается значение истины, и этот результат затем подается в if заявление.
тип таблицы истинности логической оценки потребует нескольких входов (a и b) вместо одного, но if не работает такой образ.
просто интересно же. Вот быстрое исправление, которое сработало
def iff(a,b,c):
if a:
return b
else:
return c
