Combinando condiciones¶
Hay veces que necesitamos indicar:
si se cumple la condici贸n 1 y la condici贸n 2 a la vez:
hacer la tarea
lo que puede resolverse mediante:
if condici贸n 1 :
if condici贸n 2 :
hacer tarea
otras sentencias
Es decir, si la condici贸n 1 falla, no nos molestamos en comprobar la condici贸n 2, porque deben cumplirse ambas a la vez.
De todas formas, es m谩s f谩cil escribir:
if condici贸n 1 and condici贸n 2 :
hacer tarea
lo que combina dos condiciones en una sola expresi贸n.
Operadores booleanos¶
Los operadores booleanos son aquellos cuyos operandos son booleanos:
True and True = True
True and False = False
False and False = False
Veamos un ejemplo:
| CondicionesAnd.py | |
|---|---|
1 2 3 4 5 | |
Vemos que el operador and toma dos operandos, cuyo valor ha de ser Verdadero o Falso.
Los operadores de comparaci贸n, como es el caso de >, tienen prioridad sobre los
booleanos, por lo que se eval煤an antes:
if b > a and c > a:
El operador or, solo obliga a que alguna (o ambas) de las condiciones se cumpla:
| CondicionesOr.py | |
|---|---|
1 2 3 4 5 | |
Es decir:
True or True = True
True or False = True
False or False = False
El operador not¶
El operador not se antepone a una condici贸n, y sirve para invertirla. Si la
condici贸n es verdadera, el conjunto es falso, y viceversa:
if not condici贸n :
sentencias
Por ejemplo
a = 33
b = 20
if not a > b:
print("a no es mayor que b")
Es decir:
not True = False
not False = True
En general, el uso de not suele resultar algo confuso, y generalmente es
preferible usar otra combinaci贸n de operadores operador. En lugar de:
if not a > b
podemos escribir
if a <= b
pero en condiciones complejas, puede resultar 煤til:
if not (a>b and c==b)
lo que significa "si no se dan ambas condiciones..."
Los operadores and, or y not son conocidos como booleanos, porque sus
operandos son valores booleanos.
Cortocircuito¶
Si combinamos dos condiciones:
if condici贸n 1 and condici贸n 2 :
hacer tarea
... a veces basta con evaluar el primer operando para saber el resultado final. En el ejemplo, si no se cumple la condici贸n 1, no es necesario evaluar la condici贸n 2, ya que el resultado final va a ser False de todas formas.
En este caso, Python no va a evaluar la segunda condici贸n, lo que se conoce como cortocircuito. Otro ejemplo:
if condici贸n 1 or condici贸n 2 :
hacer tarea
Vemos que, si se cumple la primera condici贸n, ya sabemos que el resultado final va a ser True.
Si las condiciones son expresiones que incluyen la llamada a una funci贸n, hay que tener en cuenta que es posible que la funci贸n no sea invocada. Si la funci贸n realiza una tarea importante (como modificar una variable o guardar datos en disco), esa tarea podr铆a quedarse sin realizar.