Python / print() / Mostrar valores como texto
En Python, print() convierte valores a texto y normalmente escribe en la salida estándar. Inserta espacios entre valores y un salto de línea al final; sep, end, file y flush controlan ese comportamiento. Devuelve None, no el texto mostrado.
Salida básica y comillas
La firma es print(*objects, sep=' ', end='\n', file=None, flush=False). *objects permite varios valores. Sin archivo explícito, la salida estándar sys.stdout suele enviar el texto al terminal o a la ventana de ejecución del IDE. Consulte los argumentos en la referencia de print().
Use Python 3. Guarde cada ejemplo completo en UTF-8 como print_example.py y ejecute python print_example.py, o python3 según su instalación. Cambie el contenido para probar cada ejemplo independientemente.
print("Hello")
print('Hello')
print("'Hello'")
print('"Hello"')
print("count", 3, True, None)
Resultado esperado:
Hello
Hello
'Hello'
"Hello"
count 3 True None
Las comillas simples y dobles delimitan cadenas sin mostrarse como parte del texto. Para imprimir comillas, use el otro tipo alrededor. Varios argumentos permiten combinar números y cadenas sin concatenarlos con +. Sin valores, print() escribe únicamente el salto de línea predeterminado.
sep separa valores y end termina la llamada
sep aparece entre argumentos de una llamada y end después del último valor. Use end="" para omitir el salto o end=" " para conectar la siguiente salida con un espacio.
print("A", "B", sep="-", end=" | ")
print("C")
values = ["A", "B"]
print(values, sep="-")
print(*values, sep="-")
A-B | C
['A', 'B']
A-B
La primera llamada escribe A-B | y la siguiente añade C en la misma línea. Una lista pasada como un argumento muestra su representación; sep no cambia su formato interno. Desempaquete *values para pasar elementos separados. Omita una opción para volver a su comportamiento predeterminado.
Formato y valor devuelto son distintos
Construya una cadena para controlar decimales o la disposición de una frase. El ejemplo usa el formato de f-string :.2f para mostrar dos decimales.
price = 12.5
quantity = 3
message = f"Total: {price * quantity:.2f}"
result = print(message)
print(result)
Total: 37.50
None
message guarda el texto, mientras result recibe None. Use return para entregar un cálculo a otro código y deje que quien lo llama decida cuándo mostrarlo. Mostrar dos decimales no cambia la precisión del valor numérico original.
Escribir un archivo UTF-8 con file
Pase un objeto de archivo de texto escribible como file. Este ejemplo completo escribe y lee report.txt en una carpeta temporal, sin sobrescribir archivos existentes, y limpia después los datos. No necesita paquetes adicionales.
from pathlib import Path
from tempfile import TemporaryDirectory
with TemporaryDirectory() as folder:
path = Path(folder) / "report.txt"
with path.open("w", encoding="utf-8") as output:
print("Alpha", 10, file=output)
with path.open("a", encoding="utf-8") as output:
print("Beta", 20, file=output)
print(path.read_text(encoding="utf-8"), end="")
Alpha 10
Beta 20
"w" crea o vacía un archivo y "a" añade al final. Cada bloque with cierra su archivo. El último end="" evita añadir otro salto a los ya leídos. Revise rutas, permisos y modos y codificación de archivos antes de adaptarlo a un archivo real.
Capturar texto y entender TypeError
StringIO actúa como un archivo de texto en memoria. Pase file=output para reutilizar funciones de impresión y llame a getvalue() antes de cerrarlo. Una f-string resulta más directa si solo necesita construir una frase.
from io import BytesIO, StringIO
with StringIO() as output:
print("A", "B", sep="-", file=output)
text = output.getvalue()
print(repr(text))
try:
print("A", "B", sep=1)
except TypeError:
print("TypeError: sep")
with BytesIO() as output:
try:
print("text", file=output)
except TypeError:
print("TypeError: binary stream")
'A-B\n'
TypeError: sep
TypeError: binary stream
El \n revelado por repr() es el salto capturado. sep y end deben ser cadenas o None para usar sus valores predeterminados; un número es inválido. BytesIO es un flujo binario y no acepta las escrituras de texto de print(). Codifique explícitamente y use una API binaria para datos binarios.
Mostrar progreso sin saltos con flush
La salida puede almacenarse en un búfer antes de entregarse. El progreso sin saltos y la salida a archivos o tuberías pueden aparecer más tarde de lo esperado. flush=True solicita al destino que vacíe su búfer.
for number in range(3):
print(number, end=" ", flush=True)
print("done")
0 1 2 done
Los caracteres finales son los mostrados, pero su actualización depende del terminal, IDE y destino. flush no añade una línea ni borra la pantalla, y tampoco garantiza almacenamiento persistente en disco. Mantenga los valores predeterminados y solicite el vaciado donde sean necesarias actualizaciones intermedias.




