Hasta ahora, tus programas han ejecutado instrucciones de forma ciega y secuencial, de arriba hacia abajo. Sin embargo, para que un script sea realmente útil, debe ser capaz de hacer preguntas sobre los datos que procesa y reaccionar de manera diferente según las respuestas que reciba.
Afortunadamente para nosotros, el cerebro de una computadora es sumamente simple y solo conoce dos tipos de respuestas absolutas:
True(Sí, esto es verdadero / es verdad).False(No, esto es falso / es mentira).
Jamás verás a Python respondiendo “Déjame pensarlo…”, “No lo sé” o “Probablemente sí, pero no estoy seguro”. En programación, el resultado de una pregunta lógica es siempre blanco o negro. A este tipo de datos se les conoce como booleanos (bool).
Para hacer estas preguntas, Python utiliza un conjunto de herramientas especiales llamadas operadores de comparación o relacionales. Vamos a estudiar el primero y más importante de ellos.
El Operador de Igualdad (==)
Cuando quieres preguntarle a Python si dos valores son exactamente iguales, debes usar el operador == (doble signo de igual).
==(Doble signo igual): Es el operador de comparación. Hace la pregunta ¿Son estos dos valores iguales?. No modifica nada; solo analiza ambos lados y devuelveTrueoFalse.
El operador == es un operador binario (necesita dos argumentos, uno a cada lado) y cuenta con asociatividad por la izquierda.
Aquí tienes la adaptación de esta sección, donde profundizamos en el comportamiento dinámico del operador de igualdad en tiempo de ejecución y analizamos sus reglas de prioridad frente a las operaciones matemáticas (un detalle crucial que el Python Institute examina meticulosamente).
El Operador de Igualdad en Tiempo de Ejecución y su Prioridad
Como acabamos de ver, el operador == evalúa dos operandos: devuelve True si sus valores son idénticos y False si no lo son. Sin embargo, en los programas reales las comparaciones no se hacen únicamente con números fijos (literales). Lo normal es comparar variables. Imagina que encuentras esta línea en un script:
var == 0¿Cuál es el resultado de esa operación? Es imposible saberlo a simple vista. No podemos predecir la respuesta si no conocemos qué valor tiene guardado la variable var en ese instante preciso.
Si el valor de var cambia constantemente a lo largo del programa, o si el usuario lo introduce directamente desde la consola mediante un input(), la respuesta a esa pregunta solo la sabrá Python y únicamente en tiempo de ejecución (runtime).
El Problema del Programador con Insomnio (Prioridad de Operadores)
Para entender cómo interactúan las matemáticas con las comparaciones, el curso nos plantea un escenario divertido: un programador que sufre de insomnio y decide contar ovejas blancas y negras por separado. Solo puede conciliar el sueño si se cumple una condición matemática exacta: que el número de ovejas negras sea exactamente el doble que el de ovejas blancas.
black_sheep == 2 * white_sheep¿Cómo resuelve Python esta línea? (Regla de Prioridad)
En el examen PCEP te cruzarás con expresiones mixtas que combinan sumas, multiplicaciones e igualdades. Para resolverlas sin fallar, debes recordar la jerarquía de operadores:
- ⚖️ Regla de Prioridad: Los operadores aritméticos (como
+,-,*,/) tienen una prioridad mucho más alta que los operadores de comparación (como==).
Debido a su baja prioridad, el operador de igualdad se esperará pacientemente a que la aritmética termine su trabajo. Por lo tanto, Python interpretará la pregunta anterior como si tuviera paréntesis invisibles alrededor de la multiplicación:
black_sheep == (2 * white_sheep)- Paso 1: Python toma la cantidad de
white_sheepy la multiplica por2. - Paso 2: Toma el resultado final de esa multiplicación y lo compara con
black_sheep. - Paso 3: Lanza el veredicto definitivo:
TrueoFalse.
Mayor que (>) y mayor o igual que (>=)
Si queremos determinar si un valor es estrictamente superior a otro, utilizamos el signo >. Por ejemplo, para saber si tenemos más ovejas negras que blancas:
black_sheep > white_sheep # ¿Es mayor que...?Truelo confirma;Falselo desmiente.
La variante no estricta (>=)
En Python utilizamos dos caracteres consecutivos: >= para determinar si es mayor o igual que el otro elemento.
Menor que (<) y menor o igual que (<=)
Siguiendo exactamente la misma lógica, para comprobar si un valor es inferior a otro disponemos del operador estricto < y su hermano no estricto <=.
- 🚨 Regla de oro para el PCEP: Los cuatro operadores de orden (
>,>=,<,<=) son operadores binarios, cuentan con asociatividad por la izquierda y, lo más importante, tienen mayor prioridad que==y!=.
¿Qué pasa con la respuesta de Python?
El resultado booleano (True o False) que nos entrega la computadora puede gestionarse principalmente de dos maneras:
- Almacenarla en una variable (Memorización): Puedes guardar el veredicto de la comparación en una variable para inspeccionarla o usarla más adelante en tu script.
- Tomar decisiones inmediatas (Control de flujo): Puedes usar la respuesta directamente para desviar el camino del programa y ejecutar bloques de código exclusivos. Para esto se necesita una instrucción especial (
if), que es el núcleo del Módulo 3 y estudiaremos a continuación.
Tabla de prioridades actualizada
El Python Institute evalúa de forma constante operaciones mixtas complejas donde se mezclan matemáticas con comparaciones. Para resolverlas correctamente sin caer en trampas, debes dominar este orden de ejecución estricto (de mayor a menor prioridad):
| Prioridad | Operador | Descripción |
| 1 | +, - | Unarios (signos positivo y negativo) |
| 2 | ** | Exponente (potencia) |
| 3 | *, /, //, % | Multiplicación, división, división entera y residuo |
| 4 | +, - | Binarios (suma y resta tradicionales) |
| 5 | <, <=, >, >= | Comparaciones de orden (estrictas y no estrictas) |
| 6 | ==, != | Comparaciones de igualdad y desigualdad |
Como puedes ver en la tabla, las matemáticas siempre se resuelven primero. Luego entran en acción los operadores de orden (>, <, etc.) y, al final de todo, se evalúa la igualdad (==, !=).