Salida y entrada
Hay dos herramientas que vas a usar desde la primera línea que escribas: print() muestra valores en la terminal e input() obtiene texto del usuario. Son sencillas, pero saber cómo se comportan te ahorra algunas sorpresas al principio.
Cómo ejecuta Python tu código
Python ejecuta tu código de arriba hacia abajo, una línea a la vez, exactamente en el orden en que lo escribiste. No salta de un lado a otro. El orden en que escribes las cosas es el orden en que se ejecutan. Siempre.
ciudad = "Ciudad de México"
print(ciudad)
print("Población: 9 millones")Primero se asigna ciudad. Se ejecuta el primer print. Se ejecuta el segundo print. Siempre en ese orden.
Esto importa porque no puedes usar una variable antes de haberla asignado. Python todavía no la conoce y va a lanzar un error:
print(pais) # NameError: pais aún no está definida
pais = "México"Ten esto en cuenta a medida que crecen tus programas: todo lo que uses debe estar definido antes de usarlo.
NameError. No hay adelantos ni una lectura previa de todo el archivo. Imprimir salida
print() es la forma en que Python te responde. Le pasas cualquier valor y lo muestra. Convierte automáticamente lo que le des a texto.
print("Hola") # Hola
print(42) # 42
print(3.14) # 3.14
print(True) # TrueMúltiples valores
Puedes imprimir varios valores a la vez separándolos con comas. Python pone un espacio entre ellos por defecto. Cambia el separador con sep:
nombre = "Ana"
edad = 28
print(nombre, edad) # Ana 28
print("Nombre:", nombre) # Nombre: Ana
print("2024", "01", "15", sep="-") # 2024-01-15
print("a", "b", "c", sep=", ") # a, b, cControlar el final de línea
Cada llamada a print() termina con un salto de línea por defecto, así que la siguiente salida empieza en una línea nueva. Cambia eso con end. Poner end="" hace que el siguiente print continúe en la misma línea:
print("Cargando", end="")
print("...")
# Cargando...
print("uno", end=" | ")
print("dos", end=" | ")
print("tres")
# uno | dos | tresprint() convierte en texto lo que le pases y lo muestra. Pásale varias cosas separadas por comas y vas a obtener un espacio entre ellas; cámbialo con sep. Cada print baja a una línea nueva al final; end="" mantiene el siguiente en la misma línea. Dar formato a la salida con f-strings
La forma más limpia de armar mensajes es con f-strings. Pon f antes de la comilla de apertura y luego envuelve cualquier variable o expresión entre llaves. Python la completa en tiempo de ejecución. Puedes poner cualquier valor, cálculo o llamada a método dentro de {}.
nombre = "Ana"
puntaje = 980
# concatenación: tosco, requiere str() para números
print("Jugador: " + nombre + ", Puntaje: " + str(puntaje))
# f-string: legible, sin conversión manual
print(f"Jugador: {nombre}, Puntaje: {puntaje}")Puedes poner cualquier expresión dentro de {}: aritmética, llamadas a métodos (como .upper(), que se cubre a fondo en el capítulo de Cadenas de texto), especificaciones de formato:
precio = 49.99
impuesto = 0.2
total = precio * (1 + impuesto)
print(f"Total: {total:.2f}") # Total: 59.99
print(f"Nombre: {nombre.upper()}") # Nombre: ANA
print(f"2 + 2 = {2 + 2}") # 2 + 2 = 4La especificación de formato después de : controla cómo se muestra el valor:
ratio = 0.8765
cantidad = 1234567
etiqueta = "ingresos"
print(f"{ratio:.1%}") # 87.6%
print(f"{cantidad:,}") # 1,234,567
print(f"{etiqueta:>12}") # " ingresos":.2f significa "dos decimales". Lo vas a usar todo el tiempo para precios y medidas. Todo lo demás está ahí para cuando lo necesites. Lo importante: dentro de {} puede ir cualquier cosa, no solo nombres de variables.
f antes de la comilla de apertura y envuelve lo que sea entre {}: una variable, una suma, hasta una llamada a método. Los dos puntos agregan formato, como :.2f para dos decimales. Mucho más limpio que pegar cadenas con +. Obtener información del usuario
input() pausa tu programa y espera a que el usuario escriba algo. Lo que sea que escriba (y confirme con Enter) vuelve como el valor de retorno. La cadena entre paréntesis es el mensaje que ve el usuario.
nombre = input("¿Cómo te llamas? ")
print(f"¡Hola, {nombre}!")input() siempre devuelve una cadena de texto, sin importar qué escriba el usuario. Escribe 42 y vas a recibir "42", no el número 42. Para hacer operaciones aritméticas con ese valor, conviértelo explícitamente:
edad = int(input("¿Cuántos años tienes? "))
print(f"En diez años vas a tener {edad + 10}.")¿Qué pasa si el usuario escribe algo que no se puede convertir? Python lanza un ValueError. Cómo manejar eso correctamente se cubre en el capítulo de Archivos y excepciones.
input() muestra tu mensaje, espera una línea y siempre la devuelve como string, aunque hayan escrito un número. ¿Necesitas un número? Convíértelo tú mismo con int() o float() al recibirlo, y luego sigue trabajando con el tipo correcto. En la práctica
Un cuestionario que se personaliza a partir de lo que escribe el usuario:
nombre = input("¿Cómo te llamas? ")
materia = input("¿Qué materia? ")
print(f"Listo, {nombre}. Empezando tu cuestionario de {materia}.")
print("¡Buena suerte!")Ambas entradas vuelven como cadenas de texto y van directo a las f-strings. No hace falta convertirlas porque las estás usando como texto, no como números.

