Ejercicio 06 — Pide dos enteros, los intercambia e imprime valores antes y después
Dificultad: amarillo · Módulo 01 (Variables, tipos y entrada/salida)
Enunciado
Pide dos enteros, los intercambia e imprime valores antes y después
Cómo se resuelve
Intercambiar el valor de dos variables es donde Python enseña un truco que en C exige una variable temporal.
a = int(input("Valor de a: "))y su gemelo parab— leemos los dos enteros convirtiendo el texto conint().print(f"Antes: a={a} b={b}")— mostramos el estado inicial para poder comparar. Dentro de la f-string cada{a}y{b}se sustituye por su valor.a, b = b, a— esta es la clave. Python evalúa primero todo el lado derecho (b, a) formando una pareja de valores en memoria, y solo después la reparte sobre el lado izquierdo. Por esoarecibe el antiguobybel antiguoade golpe, sin pisarse.- En C tendrías que hacer
tmp = a; a = b; b = tmp;porque la asignación es de uno en uno; aquí la asignación múltiple lo resuelve en una línea. - El segundo
printmuestra los valores ya intercambiados.
Trampa habitual: creer que a = b seguido de b = a sirve. No: tras a = b el valor original de a ya se ha perdido, y b acabaría con el valor de b. La asignación simultánea a, b = b, a es lo que lo evita.
Para practicar — cópialo y complétalo
Pega este esqueleto y completa los TODO. Es la mejor forma de aprender: inténtalo antes de mirar la solución.
# Curso de Python — Modulo 01: Variables, tipos y E/S
# Ejercicio 06 — PRACTICA (rellena los TODO)
# Enunciado: Pide dos enteros, los intercambia e imprime valores antes y después
# Dificultad: amarillo
# Ejecutar: python3 ej06_practica.py
# TODO: pide el valor de a con input() y convierte a int
a = ...
# TODO: pide el valor de b con input() y convierte a int
b = ...
# TODO: imprime "Antes: a=<a> b=<b>"
...
# TODO: intercambia a y b en UNA sola linea (sin variable auxiliar)
# Pista: Python permite a, b = b, a
...
# TODO: imprime "Despues: a=<a> b=<b>"
...Solución — cópiala y ejecútala
# Curso de Python — Modulo 01: Variables, tipos y E/S
# Ejercicio 06 — MODELO (resuelto)
# Enunciado: Pide dos enteros, los intercambia e imprime valores antes y después
# Dificultad: amarillo
# Ejecutar: python3 ej06_modelo.py
a = int(input("Valor de a: "))
b = int(input("Valor de b: "))
print(f"Antes: a={a} b={b}")
# Python evalua el lado derecho completo antes de asignar:
# no necesita variable temporal como en C (tmp = a; a = b; b = tmp;)
a, b = b, a
print(f"Despues: a={a} b={b}")Cómo usarlo
Pega el código en un fichero y ejecútalo con tu toolchain habitual (o el botón de Ejecutar de tu editor). Antes de mirar la solución, intenta completar tú el esqueleto: es la mejor forma de aprender.