Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中print(x | y)的含义是什么?_Python_Python 3.x_Python 2.7_Python Requests_Boolean Logic - Fatal编程技术网

Python中print(x | y)的含义是什么?

Python中print(x | y)的含义是什么?,python,python-3.x,python-2.7,python-requests,boolean-logic,Python,Python 3.x,Python 2.7,Python Requests,Boolean Logic,请解释这些打印命令是如何工作的,并解释每种情况下的输出 请告诉我们这些是从哪个主题来的|和>>是按位运算符,它们类似于在位级别工作的普通(+、-、*、/)运算符。 是一种逻辑运算,如果两个输入都为真,则返回真。“打印(x | y)”打印5到9之间的二进制“或”的结果。这是13。因此,如果输出中的每一位设置为5或9的二进制值,则将其设置 x=5 y=9 print(x|y) print(x and y) print(x>>2) “打印(x和y)”打印5到

请解释这些打印命令是如何工作的,并解释每种情况下的输出


请告诉我们这些是从哪个主题来的|和>>是按位运算符,它们类似于在位级别工作的普通(+、-、*、/)运算符。 是一种逻辑运算,如果两个输入都为真,则返回真。

“打印(x | y)”打印5到9之间的二进制“或”的结果。这是13。因此,如果输出中的每一位设置为5或9的二进制值,则将其设置

   x=5
   y=9
   print(x|y)
   print(x and y)
   print(x>>2)
“打印(x和y)”打印5到9之间的二进制“和”的结果。这是1。因此,如果将输出中的每一位设置为二进制值5和9,则将对其进行设置

5  = 0101
9  = 1001
13 = 1101
“打印(x>>2)”打印5乘2的二进制“移位”结果。这是1

5  = 0101
9  = 1001
1  = 0001

您应该在python中使用布尔值确认:

在您的情况下:

5  = 0100
1  = 0001
5二进制->101 换档后 ->二进制001(1)

print(x | y)和print(x>>2)使用位运算符。这意味着他们正在对代表数字的位进行操作

所以是零零碎碎的

x=5=0101

y=9=1001

print(x | y)是一个“或”操作符。因此,对于每一位,如果其中一位为1,它将返回1。在你的例子中,唯一的一位是最后一位。因此它将返回1101,等于13

打印(x>>2)意味着位向右移动2处。所以0101变成0001,等于1。 如果您打印了(y>>2),它将返回等于2的0010

打印(x和y)是一个逻辑运算符。它的工作方式是检查x是否为真,如果为真,它将返回y。在你的例子中,x将返回true,因为它是一个正整数,然后它将返回y


请注意,等效的位运算符为“&”

请参见堆栈溢出不是读取的替代。您确定x | y吗?或表示如果任何比较位为1,则结果为1。你在解释我的行为。“如果是真的,它将返回y”也是错误的。逻辑and意味着如果两个值都计算为“真”(在本例中不是零),结果将为“真”。是的,我的错误,不确定我写x | y时的想法。如果其中一个值等于1,它将返回1。但对于第二部分,这是一个稍微奇怪的示例。但是python的工作原理是,如果第一部分为,参数为false,则不会计算第二部分。如果第一个参数为true,则返回第二个参数。在本例中,第二个参数不是布尔值,而是and integer,因此它将返回整数。您可以尝试以下示例:print(5和9)=9 print(0和9)=0 print(9和5)=5
x = 5 #-> True
y = 9 #-> True

x | y #- x or y -> True
x and y #-> True

x >> 2 # shifts in binary two places to the right