¿Dónde se utilizan los caracteres de la barra y la barra vertical en Python?

En la página de Wikipedia que describe la evaluación de cortocircuito , & y | se enumeran como operadores ansiosos en Python. ¿Qué significa esto y cuándo se usan en el idioma?

La página de wikipedia está mal, la he corregido. | y & no son operadores booleanos, aunque son operadores ansiosos, lo que significa que no son operadores de cortocircuito. Como probablemente sepas, aquí está cómo funcionan los operadores python and / or :

 >>> def talk(x): ... print "Evaluating: ", bool(x) ... return x ... >>> talk(1 == 1) or talk(2 == 1) # 2 == 1 is not evaluated Evaluating: True True >>> talk(1 == 1) and talk(2 == 1) Evaluating: True Evaluating: False False >>> talk(1 == 2) and talk(1 == 3) # 1 == 3 is not evaluated Evaluating: False False 

Que yo sepa, python no tiene operadores booleanos ansiosos, tendrían que ser codificados explícitamente, por ejemplo, como este:

 >>> def eager_or(a, b): ... return a or b ... >>> eager_or(talk(1 == 1), talk(2 == 1)) Evaluating: True Evaluating: False True 

Ahora, a y b se evalúan automáticamente cuando se llama a la función, aunque or un cortocircuito.

En cuanto al uso de | y & , cuando se usan con números, son operadores binarios:

 >>> bin(0b11110000 & 0b10101010) '0b10100000' >>> bin(0b11110000 | 0b10101010) '0b11111010' 

Es más probable que uses | De esta manera, con enlaces de Python a bibliotecas que usan indicadores, como wxWidgets:

 >>> frame = wx.Frame(title="My Frame", style=wx.MAXIMIZE | wx.STAY_ON_TOP) >>> bin(wx.MAXIMIZE) '0b10000000000000' >>> bin(wx.STAY_ON_TOP) '0b1000000000000000' >>> bin(wx.MAXIMIZE | wx.STAY_ON_TOP) '0b1010000000000000' 

Cuando se usan con conjuntos, hacen las operaciones de intersección y unión , respectivamente:

 >>> set("abcd") & set("cdef") set(['c', 'd']) >>> set("abcd") | set("cdef") set(['a', 'c', 'b', 'e', 'd', 'f']) 

Significa que el operando izquierdo y el operando derecho siempre se evalúan. & es el operador bitwise y | es el operador OR a nivel de bits.

& —-> Se utiliza para AND bitwise, es decir, bit a bit

similar,

| —> usado para O bitwise

Cuando encuentre algún problema con Python, intente usar python.org, es útil