For loops y While loops en Python

Clase 18 de 49Curso Práctico de Python: Creación de un CRUD

Resumen

Domina las iteraciones en Python con un enfoque práctico y claro: usa for loop y while loop de forma efectiva, comprende range como iterator en Python 3 para ahorrar memoria, y aplica break y continue en un caso real de búsqueda de clientes con split y formato de cadenas mediante .format.

¿Qué son las iteraciones en Python y cuándo usar for o while?

Las iteraciones permiten ejecutar un bloque repetidamente. En Python, las dos formas principales son:

  • for loop: itera sobre una secuencia. Ideal cuando conoces los elementos o el rango.
  • while loop: repite hasta que una condición sea falsa. Útil cuando el fin depende de un estado.

Ventajas destacadas: - Código legible y mantenible. Sustituye patrones antiguos como el uso de “go to”. - Convención de variable i: se usa comúnmente como contador, pero el nombre es libre.

¿Cómo funciona range como iterator eficiente?

  • En Python 3, range devuelve un objeto iterator, no crea la lista completa de números.
  • Beneficio clave: mejor uso de memoria al no generar secuencias gigantes en el instante.
  • Ejemplo básico:
for i in range(10):
    print(i)  # Imprime 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

¿Qué hacen las keywords break y continue?

  • continue: salta el resto del bloque actual y pasa a la siguiente iteración.
  • break: termina por completo el ciclo actual.
  • Uso típico: filtrar elementos con continue y, al encontrar lo buscado, usar return o break para detener.

¿Cómo implementar una búsqueda de clientes con for y split?

Se parte de una estructura simple: los clientes están en un solo string separados por comas. Para iterar, se convierte a lista con split y se recorre con for loop.

Habilidades aplicadas: - Manejo de cadenas y listas: split(',') para obtener la lista de clientes. - Control de flujo: uso de continue para saltar casos no coincidentes. - Retorno de valores: la función regresa True si encuentra al cliente; False en caso contrario.

Ejemplo de función:

clients = "Pablo,Ricardo"

def search_client(client_name):
    clients_list = clients.split(",")
    for client in clients_list:
        if client != client_name:
            continue  # sigue buscando
        return True   # encontrado
    return False      # no encontrado

Uso dentro del flujo principal con una variable booleana:

client_name = get_client_name()  # usa la función global input para pedir el nombre
found = search_client(client_name)

if found:
    print('El cliente "{}" está en la lista de clientes.'.format(client_name))
else:
    print('"{}" no está en nuestra lista de clientes.'.format(client_name))

¿Cómo estructurar el flujo con return y valores booleanos?

  • Todas las funciones regresan un valor: sin return, devuelven None; aquí se define explícitamente un booleano.
  • return finaliza la función: en cuanto se encuentra el cliente, se detiene el recorrido.
  • Variable de estado found: facilita decisiones posteriores con if.

¿Cómo dar retroalimentación al usuario con format y placeholders?

  • Uso de .format con llaves {} como placeholder para insertar variables en un mensaje.
  • Ventaja: mensajes claros y reutilizables sin concatenaciones complejas.

¿Qué buenas prácticas y contexto histórico conviene recordar?

Las iteraciones no solo resuelven problemas, también mejoran la claridad del código.

  • Legibilidad ante todo: los ciclos modernos reemplazan patrones antiguos como “go to”, haciendo el programa comprensible.
  • Separadores por comas y formato CSV: almacenar datos como "nombre1,nombre2" es común; está relacionado con CSV (Comma Separated Values), base de muchos datos tabulares en herramientas como Excel o spreadsheet.
  • Trabajo incremental: primero define el comando de búsqueda, luego implementa la función, y al final prueba con casos existentes y no existentes: por ejemplo, buscar "Pablo" y luego "Billy" para validar ambos escenarios.

¿Tienes otra forma de implementar la búsqueda o quieres optimizar el flujo con break en lugar de return? Comparte tus ideas y comenta tu enfoque.