Estoy escribiendo algunos informes, y me gustaría saber si hay una manera más simple de obtener el siguiente comportamiento.Formato de cadena de anidación
>>> '{:-^60}'.format('Percentage used: {:.2%}'.format(.4))
'------------------Percentage used: 40.00%-------------------'
Como puedes ver, estoy centrando el texto y luego imprimiendo un número formateado en porcentaje. Pero estoy usando una función de formato dentro de otra. Si es posible, me gustaría hacer lo mismo en una sola función, más o menos lo siguiente.
'$SOMETHING GOES HERE'.format(header = 'Percentage Used:',percentage = .4)
Por supuesto que estoy buscando una solución general, que sería trabajar con todos, o la mayoría, de las opciones de formateo, no sólo para la alineación
Gracias.
Parece que su problema se anida inherentemente. Imagina que quieres formatear un par de dos números, dando a cada uno al menos 3 caracteres, y haciendo que todo el grupo tome al menos 10. No veo cómo escribirías eso, excepto algo como ''{: 10}' .format ('({: 3}, {: 3})'. format (1,2)) '. Es lo mismo aquí. Es toda la cadena que necesita centrar, no cualquier elemento en particular, por lo que debe formatear la cadena formateada. @wim tiene razón en que 'center' es probablemente más legible, pero es efectivamente equivalente. – abarnert
Gracias, sobre todo, estoy buscando algunas ideas. No veo cómo podrías hacerlo tampoco, pero tal vez otras funciones o algo podría hacer el trik. Como el de @wim. Sin embargo, creo que lo que me gustaría hacer está limitado por la función de formato en sí. – Darkade
Si está buscando algo más poderoso y flexible (pero complejo) que el 'formato 'incorporado, durante unos años se discutió sobre el formato' de tiempo', la gente sugirió todo tipo de alternativas y bibliotecas codificadas que implementó la mayoría de ellos. Intente buscar PyPI, y tal vez la colección de recetas de ActiveState (porque esto estaba sucediendo mientras PyPI estaba todavía en desarrollo) y tal vez encuentre algo que haga lo que necesita. (No tengo recomendaciones específicas.) – abarnert