valor - python retornar lista
python y/o operadores devuelven valor (4)
Consulte this tabla desde la referencia de biblioteca estándar en los documentos de Python:
Esta pregunta ya tiene una respuesta aquí:
- Extraño uso de python y / o operador 7 respuestas
Estaba viendo un video de 2007 en Advanced Python o Understanding Python , y en 18''27 "el orador dice" Como algunos pueden saber en Python yy or
devolver uno de los dos valores, mientras que not
siempre devuelve un booleano ". ¿Cuándo tiene esto? ha sido el caso?
Por lo que puedo decir, yy or
devolver booleanos, también.
Los operadores andy devuelven uno de sus operandos, no un valor booleano puro como True
o False
:
>>> 0 or 42
42
>>> 0 and 42
0
Mientras que not
siempre devuelve un valor booleano puro:
>>> not 0
True
>>> not 42
False
Necesita agregar algunos puntos a la respuesta de @ Frédéric.
¿devuelven uno de sus operandos?
Es cierto. Pero esa no es la lógica detrás de esto. En python, los números excepto 0 se consideran verdaderos y el número 0 se considera falso.
(o y 42-> Falso y Verdadero) = Falso.
Es por eso que devuelve 0.
(0 o 42-> falso o verdadero) = 42
En ese caso, la declaración será Verdadero debido al operando 42. Por lo tanto, python devuelve el operando que hace que la declaración sea verdadera, en ese caso.
de los documentos de Python :
El operador no cede True si su argumento es falso, de lo contrario es False.
La expresión xey primero evalúa x; si x es falso, se devuelve su valor; de lo contrario, y se evalúa y se devuelve el valor resultante.
La expresión xoy primero primero evalúa x; si x es verdadero, se devuelve su valor; de lo contrario, y se evalúa y se devuelve el valor resultante.
Python or
operador devuelve el primer valor de Verdad-y, o el último valor, y se detiene. Esto es muy útil para asignaciones de programación comunes que necesitan valores de retorno.
Como este simple:
print my_list or "no values"
Esto imprimirá my_list
, si tiene algo. De lo contrario, no imprimirá no values
(si la lista está vacía, o si no es ...).
Un simple ejemplo:
>>> my_list = []
>>> print my_list or ''no values''
no values
>>> my_list.append(1)
>>> print my_list or ''no values''
[1]
El cumplido al usar and
, que devuelve el primer valor de False-y, o el último valor, y se detiene, se usa cuando desea un guardia en lugar de un respaldo.
Como éste:
my_list and my_list.pop()
Esto es útil ya que no puede usar list.pop
en None
, o []
, que son valores previos comunes a las listas.
Un simple ejemplo:
>>> my_list = None
>>> print my_list and my_list.pop()
None
>>> my_list = [1]
>>> print my_list and my_list.pop()
1
En ambos casos, se devolvieron valores no booleanos y no se generaron excepciones.