использование 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