Condicional if
Un programa no siempre debe hacer lo mismo en todas las situaciones. A veces necesita actuar solo si se cumple cierta condición: mostrar un mensaje, permitir el acceso, validar un dato o ejecutar un cálculo únicamente cuando corresponde. Esa capacidad de tomar decisiones durante la ejecución es una de las ideas que vuelve útil a la programación. En Python, una de las formas más directas de expresar esa lógica es mediante la estructura if.
Objetivo
Sección titulada «Objetivo»Comprender cómo la estructura if permite evaluar una condición y ejecutar instrucciones solo cuando esa condición resulta verdadera.
Cuando el programa debe decidir
Sección titulada «Cuando el programa debe decidir»Hasta este punto, es probable que hayas trabajado con programas donde las instrucciones se ejecutan una tras otra, en el orden en que fueron escritas. Ese comportamiento corresponde a un flujo secuencial. Sin embargo, muchos problemas no pueden resolverse únicamente siguiendo una secuencia fija de pasos.
Piensa en situaciones como estas:
- Mostrar un mensaje solo si la asistencia es perfecta
- Permitir el acceso únicamente si la edad cumple un mínimo
- Indicar aprobación solo cuando la nota alcanza el valor requerido
- Validar un dato solo si su contenido cumple cierta regla
En todos estos casos, el programa necesita evaluar una situación antes de actuar. No basta con ejecutar instrucciones de forma lineal, sino que es necesario incorporar una verificación que determine si se debe o no ejecutar cierto bloque de código.
La idea detrás de if
Sección titulada «La idea detrás de if»La estructura if permite indicar que un bloque de instrucciones debe ejecutarse solo cuando se cumple una condición.
if condicion: instruccion_1 instruccion_2Esta forma breve concentra una idea muy importante de la programación: no toda instrucción debe ejecutarse siempre. Algunas acciones dependen del resultado de una verificación previa.
En esta estructura conviene distinguir tres partes:
ifes una palabra reservada del lenguajecondiciones una expresión que Python puede evaluar- El bloque indentado contiene las instrucciones que solo se ejecutan si la condición es verdadera
Cómo cambia el flujo
Sección titulada «Cómo cambia el flujo»Una forma útil de comprender if es pensar que introduce una bifurcación en el recorrido del programa. A partir de ese punto, el código ya no sigue una única ruta obligatoria, sino que puede ejecutar o no cierto bloque según el resultado de la condición.
flowchart TD A[Programa en ejecución] --> B{¿La condición se cumple?} B -->|Sí| C[Ejecutar bloque del if] B -->|No| D[Omitir bloque] C --> E[Continuar programa] D --> EEste esquema resume la función central de if: incorporar una decisión dentro del flujo del programa sin interrumpir su continuidad.
Cómo se lee una condición
Sección titulada «Cómo se lee una condición»Una condición es una expresión cuyo resultado puede interpretarse como verdadero o falso. En muchos casos, esa evaluación se construye mediante comparaciones.
edad = 18
if edad >= 18: print("Cumple el requisito de edad.")Aquí, Python evalúa la expresión edad >= 18. Esa comparación produce un valor booleano.
- Si el resultado es
True, se ejecuta la instrucción indentada - Si el resultado es
False, esa instrucción se omite
Lo importante no es memorizar la sintaxis, sino aprender a leer la lógica de la condición. En este caso, la expresión puede leerse así: “si la edad es mayor o igual a 18, entonces muestra el mensaje”.
Esa forma de lectura ayuda mucho al construir condiciones más adelante, porque obliga a pensar primero en la regla y después en el código que la representa.
Más allá de True y False
Sección titulada «Más allá de True y False»Aunque muchas condiciones se escriben a partir de comparaciones que producen True o False, Python también puede evaluar otros valores según su valor de verdad. Eso significa que ciertos datos se interpretan como verdaderos y otros como falsos cuando aparecen dentro de una condición.
| Expresión | Interpretación | Comentario |
|---|---|---|
True | Verdadera | Valor booleano explícito |
8 > 3 | Verdadera | La comparación produce True |
1 | Verdadera | Todo número distinto de 0 se interpreta como verdadero |
"Python" | Verdadera | Una cadena con contenido se interpreta como verdadera |
False | Falsa | Valor booleano explícito |
0 | Falsa | El valor 0 se interpreta como falso |
"" | Falsa | Una cadena vacía se interpreta como falsa |
[] | Falsa | Una lista vacía se interpreta como falsa |
Este punto es especialmente importante porque muestra que una condición no se limita a las palabras True y False. Python puede evaluar expresiones, números, cadenas y otros valores según su comportamiento lógico.
La indentación delimita el bloque
Sección titulada «La indentación delimita el bloque»Una de las características más distintivas de Python es que la indentación no cumple solo una función visual. También define la estructura del programa.
temperatura = 31
if temperatura > 30: print("Hace calor.") print("Recuerda hidratarte.")
print("Fin del programa.")En este fragmento, las dos instrucciones indentadas pertenecen al bloque del if. En cambio, print("Fin del programa.") queda fuera de la condición, por lo que se ejecuta siempre.
Esto significa que la sangría no se usa solo para “ordenar bonito” el código. Sirve para delimitar con claridad qué instrucciones dependen de la condición y cuáles continúan después de ella.
Una decisión concreta
Sección titulada «Una decisión concreta»Supongamos que se desea informar si una estudiante tiene asistencia perfecta.
asistencia = 100
if asistencia == 100: print("Cumples con asistencia perfecta.")Aquí el programa compara el valor almacenado en asistencia con 100. Si ambos valores coinciden, la condición se cumple y el mensaje se muestra en pantalla.
Cumples con asistencia perfecta.Este ejemplo permite ver con claridad la lógica de if: la acción no ocurre siempre, sino solo cuando la verificación resulta verdadera.
Cuando la condición depende de la entrada
Sección titulada «Cuando la condición depende de la entrada»En muchos programas, la condición no se construye con un valor fijo escrito directamente en el código, sino con un dato proporcionado durante la ejecución.
edad = int(input("Ingresa tu edad: "))
if edad >= 12: print("Puedes ingresar a la actividad.")Aquí ocurre una secuencia muy representativa de la programación básica:
- El programa solicita un dato mediante
input() - El dato ingresado se convierte a entero con
int() - Se evalúa una condición sobre ese valor
- Si la condición se cumple, se ejecuta la acción correspondiente
Esta estructura aparece una y otra vez en programas reales: pedir información, interpretarla y decidir qué hacer con ella.
Pensar antes de escribir la condición
Sección titulada «Pensar antes de escribir la condición»Al comenzar, es común concentrarse demasiado en la sintaxis y olvidar la parte más importante: la lógica que la condición representa. Antes de escribir un if, conviene preguntarse:
- ¿Qué situación quiero comprobar?
- ¿Qué dato participa en esa decisión?
- ¿Qué debe ocurrir si la condición se cumple?
- ¿Qué parte del programa depende realmente de esa verificación?
Estas preguntas ayudan a evitar condiciones confusas o mal planteadas. En el fondo, escribir un if no consiste solo en usar una estructura del lenguaje, sino en traducir una regla del problema a una forma que Python pueda evaluar.
Del concepto al código
Sección titulada «Del concepto al código»Escribe un programa en Python que solicite la nota final de una estudiante e informe si está aprobada, considerando que la aprobación se obtiene con nota mayor o igual a 4.0.
El programa debe cumplir con los siguientes requisitos:
- Debe pedir la nota usando
input() - Debe convertir el dato a
float - Debe usar una estructura
if - Debe mostrar el mensaje solo cuando la condición se cumpla
Cuando ejecutes el programa, debería funcionar de la siguiente manera:
Ingresa la nota final: 4.5La estudiante está aprobada.Para profundizar
Sección titulada «Para profundizar»Si deseas ampliar este contenido con fuentes del propio lenguaje, estas lecturas son especialmente útiles:
-
Tutorial oficial de Python: herramientas de control de flujo
Presenta la estructuraifde manera progresiva, con ejemplos y explicaciones orientadas al aprendizaje. -
Referencia del lenguaje: sentencia
if
Describe con mayor precisión técnica cómo se define esta estructura dentro del lenguaje. -
Tipos integrados: truth value testing
Explica por qué ciertos valores y expresiones se interpretan como verdaderos o falsos en una condición.