2012-05-31 43 views

Respuesta

80

Claro, utilice el método .format. Por ejemplo,

print '{:10s} {:3d}  {:7.2f}'.format('xxx', 123, 98) 
print '{:10s} {:3d}  {:7.2f}'.format('yyyy', 3, 1.0) 
print '{:10s} {:3d}  {:7.2f}'.format('zz', 42, 123.34) 

imprimirá

xxx  123 98.00 
yyyy   3  1.00 
zz   42 123.34 

Se puede ajustar el tamaño de los campos según se desee. Tenga en cuenta que .format funciona independientemente de print para formatear una cadena. Acabo de usar print para mostrar las cadenas. Breve explicación:

10s formato de una cadena con 10 espacios, que quedan justificados por

3d formato de un entero reservar 3 plazas de forma predeterminada, justificado a la derecha de manera predeterminada

7.2f formato de un flotador, reservando 7 espacios, 2 después del punto decimal, justificado de forma correcta por defecto.

Hay muchas opciones adicionales para posicionar/formatear cadenas (relleno, justificación izquierda/derecha, etc.), String Formatting Operations proporcionará más información.

+2

¡Exactamente lo que estaba buscando, gracias! – anio

+4

Nota: '7.2f' impone la precisión de 2, pero 7 tiene solo un _minimum_ ancho. Para las entradas que no coinciden con los formatos, es posible que no obtenga un ancho de 7. ej. aunque 12345.7 tiene solo 7 caracteres, el formato ''{: 7.2f}'. (12345.7)' tiene un ancho de 8. – jkmacc

+0

@jkmacc buen punto, gracias por decirlo explícitamente (el enlace proporciona más información sobre esto, y más , así como en la parte superior # 4, pero esto es más explícito/más fácil :) – Levon

Cuestiones relacionadas