Salida y entrada

Dos herramientas que usarás desde la primera línea que escribas: print() muestra valores en la terminal, input() obtiene texto del usuario. Son simples, pero saber cómo se comportan te ahorra sorpresas al principio.
Cómo Python ejecuta tu código
Python ejecuta tu código de arriba a abajo, una línea a la vez, exactamente en el orden en que la escribiste. Sin saltos. El orden en que escribes las cosas es el orden en que se ejecutan. Siempre.
city = "Ciudad de México"
print(city)
print("Población: 9 millones")city se asigna primero. Se ejecuta el primer print. Se ejecuta el segundo print. Cada vez, en ese orden.
Esto importa porque no puedes usar una variable antes de haberla asignado. Python aún no la ha visto y lanzará un error:
print(country) # NameError: country aún no está definido
country = "México"Ten esto en mente mientras tus programas crecen: cualquier cosa que uses debe estar definida antes de usarla.
NameError. Sin saltos, sin leer todo el archivo primero. Imprimiendo salida
print() es cómo Python te habla de vuelta. Pásale cualquier valor y muestra ese valor. Convierte automáticamente lo que le das en texto.
print("Hello") # Hello
print(42) # 42
print(3.14) # 3.14
print(True) # TrueMúltiples valores
Puedes imprimir múltiples valores a la vez separándolos con comas. Python pone un espacio entre ellos de forma predeterminada. Cambia el separador con sep:
name = "Carlos"
age = 28
print(name, age) # Carlos 28
print("Name:", name) # Name: Carlos
print("2024", "01", "15", sep="-") # 2024-01-15
print("a", "b", "c", sep=", ") # a, b, cControlando el final de la línea
Cada llamada print() termina con una nueva línea de forma predeterminada, así que la siguiente salida comienza en una línea nueva. Cambia eso con end. Establecer end="" hace que el siguiente print continúe en la misma línea:
print("Loading", end="")
print("...")
# Loading...
print("one", end=" | ")
print("two", end=" | ")
print("three")
# one | two | threeprint() convierte lo que le des en texto y lo muestra. Pasa varias cosas separadas por comas y obtienes un espacio entre ellas, cambia eso con sep. Cada print baja a una línea nueva al final; end="" mantiene el siguiente en la misma línea. Formateando salida con f-strings
La forma más limpia de construir mensajes es con f-strings. Pon f antes de la comilla de apertura, luego envuelve cualquier variable o expresión en llaves. Python la rellena en tiempo de ejecución. Puedes poner cualquier valor, cálculo, o llamada a método dentro de {}.
name = "Carlos"
score = 980
# concatenación: torpe, requiere str() para números
print("Player: " + name + ", Score: " + str(score))
# f-string: legible, sin conversión manual
print(f"Player: {name}, Score: {score}")Puedes poner cualquier expresión dentro de {}: aritmética, llamadas a método (como .upper(), cubierto completamente en el capítulo Strings), especificaciones de formato:
price = 49.99
tax = 0.2
total = price * (1 + tax)
print(f"Total: {total:.2f}") # Total: 59.99
print(f"Name: {name.upper()}") # Name: CARLOS
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
count = 1234567
label = "revenue"
print(f"{ratio:.1%}") # 87.6%
print(f"{count:,}") # 1,234,567
print(f"{label:>12}") # " revenue":.2f significa "dos lugares decimales". Lo usarás constantemente para precios y medidas. Todo lo demás está ahí cuando lo necesites. Lo principal: cualquier cosa puede ir dentro de {}, no solo nombres de variables.
f antes de la comilla de apertura y envuelve cualquier cosa en {}: una variable, una suma, incluso una llamada a método. Un dos puntos añade formato, como :.2f para dos lugares decimales. Mucho más limpio que pegar cadenas juntas con +. Obteniendo entrada del usuario
input() pausa tu programa y espera a que el usuario escriba algo. Lo que sea que escriban (y presionen Enter) vuelve como el valor de retorno. La cadena entre paréntesis es el prompt que ve el usuario.
name = input("¿Cuál es tu nombre? ")
print(f"¡Hola, {name}!")input() siempre devuelve una cadena, sin importar qué escriba el usuario. Escribe 42 y obtienes "42", no el número 42. Para hacer aritmética con ello, convierte explícitamente:
age = int(input("¿Cuántos años tienes? "))
print(f"En diez años tendrás {age + 10}.")¿Y si el usuario escribe algo que no puede convertirse? Python lanza un ValueError. Manejar eso apropiadamente se cubre en el capítulo Files and exceptions.
input() muestra tu prompt, espera una línea, y siempre la devuelve como una string, incluso si escribieron un número. ¿Necesitas un número? Conviértelo tú mismo con int() o float() cuando llegue, luego continúa con el tipo correcto. En práctica
Un cuestionario que se personaliza a partir de la entrada del usuario:
name = input("¿Cuál es tu nombre? ")
subject = input("¿Cuál es tu tema favorito? ")
print(f"Bien, {name}. Iniciando tu cuestionario de {subject}.")
print("¡Buena suerte!")Ambas entradas vuelven como cadenas e van directamente a los f-strings. No es necesaria la conversión porque las estás usando como texto, no como números.

