Логический оператор Python AND
Я немного смущен результатами, которые получаю с логическими операторами в Python. Я новичок и изучаю с помощью нескольких книг, но они не объясняют так подробно, как хотелось бы.
вот мой собственный код:
five = 5
two = 2
print five and two
>> 2
Кажется, это просто вывод двух переменных.
five = 5
two = 2
zero = 0
print five and two and zero
Итак, я добавил еще одно целое переменное. Затем я напечатал и получил следующий вывод:
>> 0
Что происходит с Python в фоновом режиме? Почему не выводят что-то вроде 7 или 5, 2.
Ответы
Ответ 1
Булевы операторы Python возвращают последнее оцениваемое значение, а не True/False. docs имеют хорошее объяснение:
Выражение x and y
сначала оценивает x
; если x
- false
, возвращается его значение; в противном случае y
оценивается и возвращается возвращаемое значение.
Ответ 2
В качестве небольшого примечания: (у меня недостаточно комментариев для комментария) Оператор AND не нужен для печати нескольких переменных. Вы можете просто разделять имена переменных запятыми, например print five, two
вместо print five AND two
. Вы также можете использовать escapes для добавления переменных в строку печати, например print "the var five is equal to: %s" %five
. Подробнее об этом здесь: http://docs.python.org/2/library/re.html#simulating-scanf
Как и другие, кто сказал, что AND является логическим оператором и используется для объединения нескольких условий, таких как
if (five == 5) AND (two == 2):
print five, two
Ответ 3
Boolean И операторы вернут первое значение 5
, если выражение оценивается как false
, а второе значение 2
, если выражение оценивается true
. Поскольку 5
и 2
являются действительными, не-ложными и ненулевыми значениями, выражение оценивается как true.
Если вы хотите напечатать обе переменные, вы можете связать их с String и напечатать это.
five = 5
two = 2
print five + " and " + two
Или, чтобы напечатать свою сумму, вы могли бы использовать
print five + two
Этот документ объясняет, как использовать логические логические операторы.
Ответ 4
Этот AND
в Python является эквивалентом &&
в Java, например. Это не означает и на английском языке. AND
является логическим оператором. Предположим, что пять тэгов 5 и два тренда 2. Из документации Python: выражение x и y сначала оценивает x; если x ложно, возвращается его значение; в противном случае y вычисляется и возвращается возвращаемое значение. В основном, он вычисляет последнее целое число в вашем случае, которое истинно.
if (five and two):
... print "True"
... else:
... print "False"
И является логическим оператором, проверяющим логику для конкретного случая, а не арифметическим оператором. Если вы хотите получить результаты, например, 7 для пяти и двух, вы должны использовать "+", что означает добавление двух целых чисел. См. Ниже:
>>> five = 5
>>> two = 2
>>> print five + two
7
Ответ 5
Попробуйте 0
и 9
.
Результат 0
, потому что значение 0
является ложным. Операнд слева от оператора and
равен False, поэтому все выражение False и возвращает 0