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 [] = []