Подтвердить что ты не робот

Логический оператор 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.

4b9b3361

Ответ 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