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 conocer cómo se comportan te evita 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 = "México"
print(city)
print("Población: 21 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 asignarla. Python aún no la ha visto y lanzará un error:
print(country) # NameError: country aún no está definido
country = "México"Mantén esto en mente conforme tus programas crecen: cualquier cosa que uses debe estar definida antes de usarla.
NameError. Sin saltos, sin leer primero el archivo completo. Imprimiendo salida
print() es cómo Python te habla de nuevo. Pásale cualquier valor e imprime ese valor. Convierte automáticamente lo que le des a 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 por defecto. Cambia el separador con sep:
name = "María"
age = 28
print(name, age) # María 28
print("Name:", name) # Name: María
print("2024", "01", "15", sep="-") # 2024-01-15
print("a", "b", "c", sep=", ") # a, b, cControlando el final de línea
Cada llamada a print() termina con una nueva línea por defecto, 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 entre llaves. Python lo rellena en tiempo de ejecución. Puedes poner cualquier valor, cálculo o llamada a método dentro de {}.
name = "María"
score = 980
# concatenation: clunky, requires str() for numbers
print("Player: " + name + ", Score: " + str(score))
# f-string: readable, no manual conversion
print(f"Player: {name}, Score: {score}")Puedes poner cualquier expresión dentro de {}: aritmética, llamadas a métodos (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: MARÍA
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 agrega 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 mensaje que el usuario ve.
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 él, convierte explícitamente:
age = int(input("¿Cuántos años tienes? "))
print(f"En diez años tendrás {age + 10}.")¿Qué pasa 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 mensaje, espera una línea, y siempre la devuelve como una cadena, incluso si escriben un número. ¿Necesitas un número? Conviértelo tú mismo con int() o float() conforme entra, luego continúa con el tipo correcto. En la práctica
Un cuestionario que se personaliza desde la entrada del usuario:
name = input("¿Cuál es tu nombre? ")
subject = input("¿Qué tema? ")
print(f"Bien, {name}. Iniciando tu cuestionario de {subject}.")
print("¡Buena suerte!")Ambas entradas vuelven como cadenas y van directamente a los f-strings. Sin conversión necesaria porque las estás usando como texto, no como números.

