Python esencial · #3 de 11

Flujo de control

if/elif/else, for, while

Por qué importa

El flujo de control es como traduces los enunciados de un problema en pasos.

La idea

Los condicionales eligen caminos; los bucles repiten el trabajo sin copiar y pegar. Prefiere for sobre while siempre que conozcas el iterable de antemano: for es más difícil de malinterpretar y más difícil de volver infinito.

Pruébalo

Escalera if / elif / else, con un pequeño clasificador tipo juego:

def grade(score):
  if score >= 90: return "A"
  elif score >= 80: return "B"
  elif score >= 70: return "C"
  elif score >= 60: return "D"
  else: return "F"

for s in [95, 82, 71, 64, 30]:
  print(s, grade(s))
not loaded

for sobre un rango, con enumerate para obtener a la vez el índice y el valor:

names = ["Ada", "Linus", "Margaret", "Grace"]
for i, n in enumerate(names, start=1):
  print(f"{i:>2}. {n}")
not loaded

while es mejor cuando la condición de parada es un estado, no un conteo. break sale anticipadamente; continue salta a la siguiente iteración.

# Find the first square > 100
n = 1
while True:
  if n * n > 100:
      print("first n with n^2 > 100:", n)
      break
  n += 1
not loaded

Verificación rápida

Mini ejercicios

Errores comunes

Conclusiones clave