Expresión de juicio condicional ternario de Python3 (if else/and or)

if else uso de la expresión:

c = a if a>b else b # Primero juzga la condición if, si es verdadera, devuelve a, de lo contrario, devuelve b

y o uso de la expresión:

El principio es usar P y Q. Si P es falsa en Python, entonces Python no continuará ejecutando Q, sino que determinará directamente que toda la expresión es falsa (valor P). Si P es verdadera, entonces continuará ejecutando Q Para determinar el valor completo de la expresión; la misma P o Q, si P es verdadera, entonces Q no continuará

Cuando los datos son todos de tipo booleano, los resultados de la operación son los siguientes:

true and true = True
true and false = False
false and true = False
false and false = False
true or true = True
true or false = True
false or true = True
false or false = False

Cuando los datos son de tipo booleano, el resultado de la operación es el siguiente:

12 and true = True
true and 12 = 12
false and 12 = False
12 and false = False
12 or true = 12
true or 12 = True
false or 12 = 12
12 or false = 12

De los resultados se pueden sacar las siguientes conclusiones:

(1) Para AND, si hay False en los datos de la operación, es False; de ​​lo contrario, devuelve los datos más a la derecha.

(2) Para OR, si hay Falso en los datos de la operación, devolver los datos restantes; de lo contrario, devolver los datos más a la izquierda.

Cuando ninguno de los datos es de tipo booleano, el resultado de la operación es el siguiente:

6 or 7 = 6
6 and 7 = 7

'a' or 'b' = 'a'
'a' and 'b' = 'b'

6 or 'a' = 6
6 and 'a' = 'a'

 Se puede ver que la conclusión sigue siendo válida.

En Python, AND tiene mayor prioridad que OR, por lo que podemos calcular el resultado de acuerdo con la conclusión o principio anterior. Al escribir código, es mejor escribir de acuerdo con el principio. Si hay muchos y/o, puede usar la conclusión para juzgar.

5 or 6 and 7 = 5
5 and 6 or 7 = 6
5 or 6 or 7 = 5
5 and 6 and 7 = 7

'a' or 'b' and 'c' = 'a'
'a' and 'b' or 'c' = 'b'
'a' or 'b' or 'c' = 'a'
'a' and 'b' and 'c' = 'c'

1 or 'b' and 'c' = 1
1 and 'b' or 'c' = 'b'
1 or 'b' or 'c' = 1
1 and 'b' and 'c' = 'c'

Caso especial Ninguno (no contiene valores booleanos):

1. Al comparar con un valor específico: y devuelve Ninguno, o devuelve un valor específico

'a' and None = None
None and 'a' = None
'a' or None = 'a'
None or 'a' = 'a'

1 and None = None
None and 1 = None
1 or None = 1
None or 1 = 1

None and 1 or 'a' = 'a'
1 and None or 'a' = 'a'
1 and 'a' or None = 'a'

2. Al comparar con un valor vacío (como: lista vacía/colección vacía/diccionario vacío): y devuelve el valor de la izquierda, o devuelve el valor de la derecha

[] and None = []
None and [] = None
[] or None = None
None or [] = []

 

Supongo que te gusta

Origin blog.csdn.net/weixin_41611054/article/details/92841704
Recomendado
Clasificación