Python中的管道字符
我看到函数调用中使用了一个“管道”字符(Python中的管道字符,python,pipe,bitwise-operators,Python,Pipe,Bitwise Operators,我看到函数调用中使用了一个“管道”字符(|): res = c1.create(go, come, swim, "", startTime, endTime, "OK", ax|bx) 管道在ax | bx中的含义是什么?它是一个按位或整数。例如,如果ax或bx中的一个或两个1,则计算结果为1,否则计算结果为0。它也适用于其他整数,例如15 | 128=143,即二进制的00001111 | 10000000=10001111。它是位or Python中所有运算符的文档都可以在Python文档
|
):
res = c1.create(go, come, swim, "", startTime, endTime, "OK", ax|bx)
管道在ax | bx
中的含义是什么?它是一个按位或整数。例如,如果ax
或bx
中的一个或两个1
,则计算结果为1
,否则计算结果为0
。它也适用于其他整数,例如15 | 128=143
,即二进制的00001111 | 10000000=10001111
。它是位or
Python中所有运算符的文档都可以在Python文档的页面中找到。这也是联合集运算符
set([1,2]) | set([2,3])
这将导致
集合([1,2,3])
是的,以上所有答案都是正确的
尽管您可以为“|”找到更多奇特的用例,但如果它是一个类使用的重载运算符,例如
在这个特定的用例中,可以将管道“|”操作符作为unix管道操作符来考虑。但是我同意,在Python中,位运算符和并集运算符是“|”更常见的用例。年,管道被增强为合并(并集)字典
>>> d = {'spam': 1, 'eggs': 2, 'cheese': 3}
>>> e = {'cheese': 'cheddar', 'aardvark': 'Ethel'}
>>> d | e
{'spam': 1, 'eggs': 2, 'cheese': 'cheddar', 'aardvark': 'Ethel'}
>>> e | d
{'cheese': 3, 'aardvark': 'Ethel', 'spam': 1, 'eggs': 2}
Python没有逻辑or运算符。
5=101
,7=111
,101 | 111=111=7
@Ignacio:Python没有逻辑or运算符?!那你叫什么?@zeekay:对。而不是总是返回True
或False
,和和或总是返回它们的一个操作数,因此是“合并”而不是“逻辑”的。更一般地说,它使用第二个操作数调用第一个操作数的\uuuu或
方法,因此您可以为自己的类定义它的行为。您应该对此感兴趣这可能比按位操作更常见。
>>> d = {'spam': 1, 'eggs': 2, 'cheese': 3}
>>> e = {'cheese': 'cheddar', 'aardvark': 'Ethel'}
>>> d | e
{'spam': 1, 'eggs': 2, 'cheese': 'cheddar', 'aardvark': 'Ethel'}
>>> e | d
{'cheese': 3, 'aardvark': 'Ethel', 'spam': 1, 'eggs': 2}