Sentencias en Python: Control de Flujo y Estructuras de Bucle

  1. 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")
  1. 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
  1. 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)
  1. Control de flujo: continue y break

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
  1. 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}")

Etiquetas: Python Sentencias condicionales Bucles while Bucles for Control de flujo

Publicado el 6-2 17:19