Expresiones booleanas
Además de los números y los textos que vimos hasta ahora, Python introduce las constantes True y False para representar los valores de verdad verdadero y falso respectivamente.
Vimos que una expresión es un trozo de código Python que produce o calcula un valor (resultado). Una expresión booleana o expresión lógica es una expresión que vale o bien True o bien False.
Las expresiones booleanas se usan para determinar si un conjunto de una o más condiciones es verdadero o falso, y el resultado de su evaluación es un valor de verdad. Los operandos de una expresión booleana pueden ser cualquiera de los siguientes:
Las expresiones relacionales permiten determinar si una relación dada se verifica entre dos valores. La forma general de una expresión relacional es:
expresión-1 operador-de-relación expresión-2
donde:
Los operadores de relación = <> < <= > >= tienen su significado convencional cuando se aplican a expresiones numéricas (dentro de los límites de precisión de los valores numéricos definidos bajo "Expresiones numéricas"). Cuando se comparan expresiones de cadena, se aplican las siguientes reglas:
El operador : (contiene), busca una cadena de caracteres (definida por expresión-2) en otra cadena (definida por expresión-1). Si el segundo operando existe en cualquier parte del segundo operando, el resultado es Verdadero (TRUE). Este operador es insensible al hecho de que los caracteres se hallen en mayúsculas o minúsculas: por lo que las letras minúsculas se consideran iguales a su letra mayúscula correspondiente. Por ejemplo, el resultado de:
v10 : 'química'
será Verdadero (True) si, y sólo si, el campo 10 contiene la cadena química. en caso contrario, el resultado será Falso (False). Nótese que el segundo operando puede ser cualquier cadena o carácter, y no necesita ser una palabra como tal. Por lo tanto, en este ejemplo, el resultado será Verdadero no sólo si el campo 10 contiene la palabra química, sino también si contuviera bioquímica, fotoquímicas, químicamente, etc.
Los operandos de una expresión booleana pueden combinarse con los operadores siguientes:
Al evaluar expresiones booleanas, y en ausencia de paréntesis, CDS/ISIS ejecutará las operaciones NOT en primer lugar, después las operaciones AND, y finalmente las OR. Las series de dos o más operadores del mismo nivel, se ejecutan de izquierda a derecha. Se pueden usar paréntesis para alterar el orden de evaluación: las expresiones dentro de paréntesis se evalúan antes, y las expresiones entre paréntesis internos a otros, son evaluadas antes que las expresiones externas a los paréntesis.
La figura 17 presenta ejemplos de expresiones booleanas.
4.1.1. Expresiones de comparación
En el ejemplo que queremos resolver, la condición que queremos ver si se cumple o no es que x sea mayor que cero. Python provee las llamadas *expresiones de comparación* que sirven para comparar valores entre sí, y que por lo tanto permiten codificar ese tipo de pregunta. En particular la pregunta de sixes mayor que cero, se codifica en Python comox > 0`.
De esta forma, 5 > 3 es una expresión booleana cuyo valor es True, y 5 < 3 también es una expresión booleana, pero su valor es False.
>>> 5 > 3
True
>>> 3 > 5
False
>>>
Los expresiones booleanas de comparación que provee Python son las siguientes:
Expresión |
Significado |
a == b |
a es igual a b |
a != b |
a es distinto de b |
a < b |
a es menor que b |
a <= b |
a es menor o igual que b |
a > b |
a es mayor que b |
a >= b |
a es mayor o igual que b |
A continuación, algunos ejemplos de uso de estos operadores:
>>> 6==6
True
>>> 6!=6
False
>>> 6>6
False
>>> 6>=6
True
>>> 6>4
True
>>> 6<4
False
>>> 6<=4
False
>>> 4<6
True
>>>
4.1.2. Operadores lógicos
De la misma manera que se puede operar entre números mediante las operaciones de suma, resta, etc., también existen tres operadores lógicos para combinar expresiones booleanas: and (y), or (o) y not (no).
El significado de estos operadores es igual al del castellano, pero vale la pena recordarlo:
Expresión |
Significado |
a and b |
El resultado es True solamente si a es True y b es True de lo contrario el resultado es False |
a or b |
El resultado es True si a es True o b es True de lo contrario el resultado es False |
not a |
El resultado es True si a es False de lo contrario el resultado es False |
a > b and a > c es verdadero si a es simultáneamente mayor que b y que c.
>>> 5>2 and 5>3
True
>>> 5>2 and 5>6
False
>>>
a > b or a > c es verdadero si a es mayor que b o a es mayor que c.
>>> 5>2 or 5>3
True
>>> 5>2 or 5>6
True
>>> 5>8 or 5>6
False
>>>
not (a > b) es verdadero si a > b es falso (o sea si a <= b es verdadero).
>>> 5>8
False
>>> not (5>8)
True
>>> 5>2
True
>>> not (5>2)
False
>>>