2012-01-31 12 views
9

Actualmente estoy tratando de imprimir un formato tabulado (usando alineación izquierda y relleno) para los encabezados de una tabla, sin embargo sigo recibiendo el siguiente errorcómo desplazarse "Único"} encontrado en la cadena de formato "cuando se utiliza .formato y formato en la impresión

ValueError: Single '}' encountered in format string 

Aquí está la línea:

print("{0}:<15}{1}:<15}{2}:<8}".format("1", "2", "3")) 

Producto previsto es algo a lo largo de las líneas de:

1    2    3   

He intentado duplicar el {} tal como se aconseja here pero no recibió ninguna suerte.

Probablemente me esté perdiendo algo increíblemente obvio, sin embargo, después de mirarlo durante años, no puedo verlo. Después de todo, ¿cuál es el daño al preguntar?

Gracias

Respuesta

9

Obras:

>>> print("{0}:<15}}{1}:<15}}{2}:<8}}".format("1", "2", "3")) 
1:<15}2:<15}3:<8} 

Editar: Ahora te entienden. Haga lo siguiente:

print("{0:<15}{1:<15}{2:<8}".format("1", "2", "3")) 

Detalles: http://www.python.org/dev/peps/pep-3101/

+1

Mientras que no se agote, Busco algo que da salida a algo así como la salida he editado en el post anterior. Disculpas por no agregarlo antes. Gracias por la ayuda. – PCJonathan

+0

¿Podría describir con más detalle la salida requerida? ¿Quieres pestañas o deben estar los "números" alineados? –

+0

Claro. Acabo de comenzar a aprender Python en los últimos meses, así que solo estamos haciendo las cosas simples. En esto estoy tratando de usar alineación izquierda y relleno. Por ejemplo, la primera columna tiene un relleno de 15. Luego, la segunda columna comienza con un relleno de 15 nuevamente. Lo mismo para el tercero con un relleno de 8. ¿Esto lo hace más claro? – PCJonathan

6

Uso }}:

>>> "{0}:<15}}{1}:<15}}{2}:<8}}".format("1", "2", "3") 
'1:<15}2:<15}3:<8}' 
+0

Si bien eso no falla, estoy buscando algo que produzca algo así como el resultado que he editado en la publicación anterior. Disculpas por no agregarlo antes. Gracias por la ayuda. – PCJonathan

2

Los { y } caracteres necesitan ser escapado en los que no son parte de la plantilla de formato.

Probar: print("{0}:<15}}{1}:<15}}{2}:<8}}".format("1", "2", "3"))

Salidas: 1:<15}2:<15}3:<8}