Curso Python #3: Estructuras de Control — Condicionales y Bucles
Introduccion: tomar decisiones y repetir acciones en tu codigo
Bienvenido a la Parte 3 de 10 del curso de Python para principiantes. En los articulos anteriores aprendiste a usar variables y tipos de datos. Ahora vamos a dar un paso muy importante: ensenarle a tu programa a tomar decisiones y a repetir acciones.

Piensa en tu dia a dia: si llueve, llevas paraguas; si no llueve, sales sin el. Repites la alarma cada manana hasta que te levantas. Eso mismo hace tu codigo con las estructuras de control: condicionales (tomar decisiones) y bucles (repetir acciones).
Al terminar este articulo seras capaz de escribir programas que reaccionen a diferentes situaciones y que repitan tareas automaticamente. Vamos a verlo paso a paso.
Condicionales: if, elif, else
Un condicional le dice a Python: "si se cumple esta condicion, haz esto; si no, haz otra cosa". La estructura basica es:
1if condicion:
2 # codigo que se ejecuta si la condicion es verdadera
3elif otra_condicion:
4 # codigo que se ejecuta si la segunda condicion es verdadera
5else:
6 # codigo que se ejecuta si ninguna condicion se cumplio
if, elif o else.
Veamos un ejemplo cotidiano — decidir que ropa ponerte segun el clima:
1temperatura = 15
2
3if temperatura > 30:
4 print("Hace mucho calor, ponte ropa ligera")
5elif temperatura > 20:
6 print("El clima esta agradable, una camiseta esta bien")
7elif temperatura > 10:
8 print("Hace un poco de frio, lleva una chaqueta")
9else:
10 print("Hace mucho frio, abrigate bien")
En este ejemplo Python evalua las condiciones de arriba hacia abajo. En cuanto encuentra una que sea verdadera, ejecuta ese bloque y se salta el resto. Si ninguna se cumple, ejecuta el bloque else.
Otro ejemplo clasico — saber si una persona puede votar:
1edad = int(input("¿Cuantos anos tienes? "))
2
3if edad >= 18:
4 print("Puedes votar")
5else:
6 print("Aun no puedes votar")
Operadores de comparacion
Para que un condicional funcione, necesitas comparar valores. Python tiene estos operadores de comparacion:
| Operador | Significado | Ejemplo | Resultado |
|---|---|---|---|
== | Igual a | 5 == 5 | True |
!= | Diferente de | 5 != 3 | True |
> | Mayor que | 10 > 7 | True |
< | Menor que | 3 < 8 | True |
>= | Mayor o igual que | 5 >= 5 | True |
<= | Menor o igual que | 4 <= 3 | False |
= (asignar un valor a una variable) con == (comparar si dos valores son iguales). Es un error muy comun entre principiantes.
Veamos unos ejemplos rapidos:
1nombre = "Ana"
2numero = 42
3
4print(nombre == "Ana") # True
5print(nombre != "Carlos") # True
6print(numero > 50) # False
7print(numero <= 42) # True
Operadores logicos: and, or, not
A veces necesitas combinar varias condiciones. Para eso existen los operadores logicos:
| Operador | Significado | Ejemplo |
|---|---|---|
and | Ambas condiciones deben ser verdaderas | edad > 18 and tiene_licencia |
or | Al menos una condicion debe ser verdadera | es_estudiante or es_jubilado |
not | Invierte el resultado (verdadero se vuelve falso) | not esta_lloviendo |
Ejemplo practico — verificar si alguien puede entrar a un bar:
1edad = 20
2tiene_identificacion = True
3
4if edad >= 18 and tiene_identificacion:
5 print("Puedes entrar")
6elif edad >= 18 and not tiene_identificacion:
7 print("Eres mayor de edad pero necesitas tu identificacion")
8else:
9 print("No puedes entrar, eres menor de edad")
Ejemplo con or — descuento en un cine:
1edad = 65
2es_estudiante = False
3
4if edad < 12 or edad > 60 or es_estudiante:
5 print("Tienes descuento en la entrada")
6else:
7 print("Pagas precio normal")
Bucle while: repetir mientras se cumpla una condicion
El bucle while repite un bloque de codigo mientras una condicion sea verdadera. Es como decir: "mientras no termine, sigue haciendolo".
1contador = 1
2
3while contador <= 5:
4 print("Repeticion numero", contador)
5 contador = contador + 1
6
7print("¡Listo! El bucle termino")
Salida:
1Repeticion numero 1
2Repeticion numero 2
3Repeticion numero 3
4Repeticion numero 4
5Repeticion numero 5
6¡Listo! El bucle termino
False.
Ejemplo practico — pedir una contrasena hasta que sea correcta:
1contrasena_correcta = "python123"
2intento = ""
3
4while intento != contrasena_correcta:
5 intento = input("Escribe la contrasena: ")
6
7print("¡Contrasena correcta! Bienvenido")
Bucle for: recorrer secuencias
El bucle for recorre los elementos de una secuencia uno por uno. Es ideal cuando sabes de antemano cuantas veces quieres repetir algo o cuando quieres recorrer una lista.
Usando range()
La funcion range() genera una secuencia de numeros. Es la forma mas comun de usar for cuando quieres repetir algo un numero fijo de veces:
1# Imprimir numeros del 0 al 4
2for i in range(5):
3 print(i)
4
5# Imprimir numeros del 1 al 5
6for i in range(1, 6):
7 print(i)
8
9# Imprimir numeros de 2 en 2: 0, 2, 4, 6, 8
10for i in range(0, 10, 2):
11 print(i)
range(5) genera los numeros 0, 1, 2, 3, 4 (no incluye el 5). Esto es muy comun en programacion y se llama "rango exclusivo".
Recorriendo listas
Puedes usar for para recorrer cualquier lista:
1frutas = ["manzana", "banana", "naranja", "uva"]
2
3for fruta in frutas:
4 print("Me gusta la", fruta)
Salida:
1Me gusta la manzana
2Me gusta la banana
3Me gusta la naranja
4Me gusta la uva
Recorriendo strings
Un string es una secuencia de caracteres, asi que tambien puedes recorrerlo:
1for letra in "Python":
2 print(letra)
break y continue: controlar el flujo del bucle
A veces necesitas salir de un bucle antes de tiempo o saltarte una iteracion. Para eso existen break y continue.
break: salir del bucle inmediatamente
1# Buscar un numero en una lista
2numeros = [10, 25, 33, 47, 55, 60]
3
4for numero in numeros:
5 if numero == 47:
6 print("¡Encontre el 47!")
7 break
8 print("Revisando:", numero)
Salida:
1Revisando: 10
2Revisando: 25
3Revisando: 33
4¡Encontre el 47!
Cuando Python llega al break, sale del bucle inmediatamente sin revisar los numeros restantes.
continue: saltar a la siguiente iteracion
1# Imprimir solo los numeros pares
2for i in range(1, 11):
3 if i % 2 != 0:
4 continue # Si es impar, saltar al siguiente
5 print(i)
Salida:
12
24
36
48
510
Con continue, Python se salta el resto del codigo dentro del bucle para esa iteracion y pasa directamente a la siguiente.
Bucles anidados
Un bucle anidado es un bucle dentro de otro bucle. Cada vez que el bucle exterior se ejecuta una vez, el bucle interior se ejecuta completamente.
Ejemplo clasico — tabla de multiplicar:
1# Tabla de multiplicar del 1 al 5
2for i in range(1, 6):
3 print(f"--- Tabla del {i} ---")
4 for j in range(1, 11):
5 resultado = i * j
6 print(f"{i} x {j} = {resultado}")
7 print() # Linea en blanco entre tablas
Esto imprimira la tabla de multiplicar del 1 al 5, cada una con multiplicaciones del 1 al 10.
Otro ejemplo — dibujar un rectangulo con asteriscos:
1filas = 4
2columnas = 8
3
4for i in range(filas):
5 for j in range(columnas):
6 print("*", end="")
7 print() # Salto de linea al final de cada fila
Salida:
1********
2********
3********
4********
end="" en print() evita que se agregue un salto de linea despues de cada asterisco. Asi todos los asteriscos de una fila se imprimen en la misma linea.
Ejemplo practico: juego de adivinar un numero
Vamos a combinar todo lo que aprendimos para crear un juego interactivo. El programa pensara en un numero aleatorio y tu tendras que adivinarlo:
1import random
2
3# El programa "piensa" un numero entre 1 y 100
4numero_secreto = random.randint(1, 100)
5intentos = 0
6adivinado = False
7
8print("=== Juego: Adivina el Numero ===")
9print("He pensado en un numero entre 1 y 100.")
10print("¡Intenta adivinarlo!")
11print()
12
13while not adivinado:
14 # Pedir un numero al usuario
15 respuesta = input("Tu respuesta: ")
16
17 # Verificar que sea un numero valido
18 if not respuesta.isdigit():
19 print("Por favor, escribe un numero valido.")
20 continue
21
22 numero_usuario = int(respuesta)
23 intentos = intentos + 1
24
25 # Comparar con el numero secreto
26 if numero_usuario < numero_secreto:
27 print("Demasiado bajo. Intenta con un numero mas alto.")
28 elif numero_usuario > numero_secreto:
29 print("Demasiado alto. Intenta con un numero mas bajo.")
30 else:
31 adivinado = True
32 print(f"¡Felicidades! Adivinaste el numero {numero_secreto}")
33 print(f"Lo lograste en {intentos} intentos.")
34
35# Mensaje final segun el rendimiento
36if intentos <= 5:
37 print("¡Increible! Eres un genio.")
38elif intentos <= 10:
39 print("¡Muy bien! Buen trabajo.")
40else:
41 print("Lo lograste, pero puedes mejorar. ¡Intenta de nuevo!")
- Usa
random.randint(1, 100)para generar un numero aleatorio entre 1 y 100 - Usa un bucle
whileque se repite hasta que el usuario adivine - Usa
continuepara manejar entradas invalidas - Usa condicionales
if/elif/elsepara dar pistas al usuario - Al final, usa condicionales para evaluar el rendimiento del jugador
Resumen y proximo articulo
En este articulo aprendiste las herramientas mas fundamentales para controlar el flujo de tu programa:
- Condicionales (
if,elif,else): permiten que tu programa tome decisiones - Operadores de comparacion (
==,!=,>,<,>=,<=): comparan valores para crear condiciones - Operadores logicos (
and,or,not): combinan varias condiciones - Bucle while: repite codigo mientras una condicion sea verdadera
- Bucle for: recorre secuencias de elementos (numeros, listas, strings)
- break y continue: controlan cuando salir de un bucle o saltar iteraciones
- Bucles anidados: un bucle dentro de otro para patrones mas complejos
Con estas herramientas ya puedes crear programas que realmente hacen cosas interesantes. En el proximo articulo (Parte 4 de 10) aprenderemos sobre funciones: como organizar tu codigo en bloques reutilizables para no repetir lo mismo una y otra vez.
Comments
Sign in to leave a comment
No comments yet. Be the first!