- Sentencia condicional
if
La sentencia if permite ejecutar bloques de código basados en condiciones. Admite operadores de comparación (>, <, ==, !=, >=, <=), operadroes lógicos (and, or, not) y operadores de pertenencia (in, not in).
Estructuras básicas
Simple (if-else):
if condicion:
accion_verdadera
else:
accion_falsa
Múltiple (if-elif-else):
if condicion_1:
accion_1
elif condicion_2:
accion_2
elif condicion_3:
accion_3
else:
accion_default
Anidado:
if condicion_principal:
if condicion_secundaria:
accion_interna
else:
accion_alternativa_interna
else:
accion_principal_falsa
Operador ternario:
resultado = valor_si_verdadero if condicion else valor_si_falso
pass es una sentencia nula que actúa como marcador de posición para mantener la estructura sintáctica.
Ejemplo práctico: Sistema de niveles de cliente
monto = input("Ingrese el monto de compra: ")
nivel = ""
if monto == "500":
nivel = "Nivel Básico"
elif monto == "5000":
nivel = "Nivel Premium"
elif monto == "50000":
nivel = "Nivel Exclusivo"
else:
nivel = "Cliente General"
print(f"Categoría asignada: {nivel}")
Ejemplo con validación anidada
monto = input("Ingrese el monto: ")
if monto == "500":
clave = input("Ingrese su clave secreta: ")
if clave == "abc123":
print("Operación autorizada")
else:
print("Clave incorrecta. Acceso denegado.")
else:
print("Monto no válido para el procedimiento")
- Bucle
while
El bucle while repite un bloque de código mientras su condición sea True.
# Ejecución controlada
contador = 0
while contador < 5:
contador += 1
print(contador, end=" ")
# Salida: 1 2 3 4 5
# Condición inicialmente falsa
valor = 10
while valor < 5:
valor += 1
print(valor) # No se ejecuta
# Bucle infinito (requiere interrupción manual)
numero = 2
while numero > 0:
numero += 1
print(numero) # Cuidado: este bucle nunca termina
Ejercicios con while
# 1. Mostrar números del 1 al 100
i = 1
while i <= 100:
print(i, end=" ")
i += 1
# 2. Mostrar números pares del 2 al 100
par = 2
while par <= 100:
print(par, end=" ")
par += 2
# 3. Mostrar números impares del 1 al 99
impar = 1
while impar <= 99:
print(impar, end=" ")
impar += 2
# 4. Suma de números del 1 al 100
total = 0
numero = 1
while numero <= 100:
total += numero
numero += 1
print(total) # 5050
# 5. Suma de números pares del 2 al 100
suma_pares = 0
n = 2
while n <= 100:
suma_pares += n
n += 2
print(suma_pares) # 2550
# 6. Suma de números impares del 1 al 99
suma_impares = 0
m = 1
while m <= 99:
suma_impares += m
m += 2
print(suma_impares) # 2500
- Bucle
for
El bucle for itera sobre secuencias (listas, cadenas, tuplas, diccionarios, range(), etc.).
La función range()
Genera secuencias numéricas: range(inicio, fin, paso). Incluye inicio pero excluye fin.
# Convertir a lista para visualización
print(list(range(10))) # [0,1,2,3,4,5,6,7,8,9]
print(list(range(5, 15))) # [5,6,7,8,9,10,11,12,13,14]
print(list(range(0, 20, 3))) # [0,3,6,9,12,15,18]
# Bucle for con range
for valor in range(1, 6):
print(valor, end="-") # 1-2-3-4-5-
Iteración sobre colecciones
# Cadenas
mensaje = "Python"
for letra in mensaje:
print(letra, end=" ") # P y t h o n
# Listas
colores = ["rojo", "azul", "verde"]
for color in colores:
print(color)
# Tuplas
coordenadas = (10, 20, 30)
for punto in coordenadas:
print(punto * 2)
# Diccionarios
persona = {"nombre": "Ana", "edad": 28, "ciudad": "Madrid"}
for clave in persona:
print(f"{clave}: {persona[clave]}")
# Usando items() para tuplas clave-valor
for atributo, valor in persona.items():
print(f"{atributo} -> {valor}")
Prácticas con for
# 1. Números del 1 al 100
for n in range(1, 101):
print(n)
# 2. Números pares del 1 al 100
for num in range(1, 101):
if num % 2 == 0:
print(num)
# 3. Números impares del 1 al 100
for num in range(1, 101):
if num % 2 != 0:
print(num)
# 4. Suma de 1 a 100
acumulador = 0
for i in range(1, 101):
acumulador += i
print(acumulador)
# 5. Suma de pares del 1 al 100
suma_p = 0
for p in range(2, 101, 2):
suma_p += p
print(suma_p)
# 6. Suma de impares del 1 al 100
suma_i = 0
for i in range(1, 101, 2):
suma_i += i
print(suma_i)
- Control de flujo:
continueybreak
continue salta a la siguiente iteración del bucle, ignorando el resto del código en la iteración actual.
datos = [1, 4, 9, 16, 25, 36]
for valor in datos:
if valor == 16:
continue # Salta el 16
print(valor, end=" ") # 1 4 9 25 36
break termina inmediatamente la ejecución del bucle más interno.
numeros = [2, 4, 6, 8, 10, 12]
for numero in numeros:
if numero == 8:
break # Sale del bucle al encontrar 8
print(numero, end=" ") # 2 4 6
Cálculo abreviado
# Suma de 1 a 100 en una línea
print(sum(range(1, 101))) # 5050
- Ejercicio integrador: Permutaciones con restricciones
Calcular cuántos números de tres dígitos pueden formarse usando los dígitos 1, 2, 3 y 4 sin repetición dentro del mismo número.
digitos = [1, 2, 3, 4]
combinaciones_validas = 0
for digito1 in digitos:
for digito2 in digitos:
if digito2 == digito1:
continue
for digito3 in digitos:
if digito3 != digito1 and digito3 != digito2:
combinaciones_validas += 1
# print(digito1, digito2, digito3)
print(f"Total de combinaciones: {combinaciones_validas}")