Articles of formato de cadena de

Obtener claves de plantilla

Me gustaría obtener una lista de todos los posibles argumentos de palabras clave que una plantilla de cadena podría usar en una sustitución. ¿Hay una manera de hacer esto que no sea re? Quiero hacer algo como esto: text=”$one is a $lonely $number.” keys = get_keys(text) # keys = (‘one’, ‘lonely’, ‘number’) Estoy escribiendo un […]

¿Cómo usar un punto en cadenas de formato Python?

Quiero formatear una cadena y poder usar el operador de puntos, para poder construir cadenas de plantillas que contengan, por ejemplo, {user.name} , {product.price} . Intenté esto: ‘Hello {user.name}’.format( {‘user’: { ‘name’: ‘Markus’ } } ) KeyError: ‘user’ ‘Hello {user.name}’.format( **{‘user’: { ‘name’: ‘Markus’ } } ) AttributeError: ‘dict’ object has no attribute ‘name’ ¿Hay […]

Definición precisa de formato de cadena flotante?

¿Se define el siguiente comportamiento en la documentación de Python (Python 2.7)? >>> ‘{:20}’.format(1e10) ‘ 10000000000.0’ >>> ‘{:20g}’.format(1e10) ‘ 1e+10′ De hecho, el primer resultado me sorprende: la documentación indica que no indicar el tipo de formato (‘f’, ‘e’, ​​etc.) para flotadores es equivalente a usar el formato general ‘g’. Este ejemplo muestra que este […]

¿Por qué usar una lista como parámetro de formato de cadena, incluso sin el identificador% s, devuelve la cadena original?

>>> ‘string with no string formatting markers’ % [‘string’] ‘string with no string formatting markers’ >>> ‘string with no string formatting markers’ % (‘string’,) Traceback (most recent call last): File “”, line 1, in TypeError: not all arguments converted during string formatting Espero que ambos casos TypeError un TypeError , pero este no es el […]

python: puntos en el nombre de la variable en una cadena de formato

Digamos que tengo un diccionario con puntos en el nombre de los campos, como {‘person.name’: ‘Joe’} . Si quisiera usar esto en str.format de str.format , ¿es posible? Mi primer instinto fue ‘Name: {person.name}’.format(**{‘person.name’: ‘Joe’}) pero esto solo funcionaria si mi dict fuera una forma {‘person’:{‘name’:Joe}} La sección de documentos del manual correspondiente no menciona […]

string.format () con marcadores de posición opcionales

Tengo el siguiente código de Python (estoy usando Python 2.7.X): my_csv = ‘{first},{middle},{last}’ print( my_csv.format( first=’John’, last=’Doe’ ) ) Obtengo una excepción KeyError porque no se especifica ‘middle’ (esto es lo esperado). Sin embargo, quiero que todos esos marcadores de posición sean opcionales. Si no se especifican los parámetros nombrados, espero que se eliminen los […]

Formato de un flotador nan en python

Estoy tratando de usar string.format en un flotador ‘nan’. Aquí está la descripción de la opción ‘g’ de la documentación de python . Formato general. Esto imprime el número como un número de punto fijo, a menos que el número sea demasiado grande, en cuyo caso cambia a la notación del exponente ‘e’. Los valores […]

Uso del método locals () y formato () para cadenas: ¿hay alguna advertencia?

¿Hay desventajas, advertencias o advertencias de mala práctica sobre el uso del siguiente patrón? def buildString(user, name = ‘john’, age=22): userId = user.getUserId() return “Name: {name}, age: {age}, userid:{userId}”.format(**locals()) Tenía un código de generación de cadenas muy repetitivo para escribir y tuve la tentación de usar esto, pero algo sobre el uso de locals() me […]

Python, imprime todos los flotantes a 2 decimales en la salida

Necesito mostrar 4 flotantes diferentes a dos decimales. Esto es lo que tengo: print ‘%.2f’ % var1,’kg =’,’%.2f’ % var2,’lb =’,’%.2f’ % var3,’gal =’,’%.2f’ % var4,’l’ Que es muy sucio, y se ve mal. ¿Hay alguna forma de hacer que flote en ese lugar, ponga ‘% .2f’? Nota: Utilizando Python 2.6.

Formato de cadena con valor-clave dict opcional

¿Hay alguna forma de formatear la cadena con dict pero opcionalmente sin errores clave? Esto funciona bien: opening_line = ‘%(greetings)s %(name)s !!!’ opening_line % {‘greetings’: ‘hello’, ‘name’: ‘john’} Pero digamos que no conozco el nombre, y me gustaría formatear la línea superior solo para ‘greetings’ . Algo como, opening_line % {‘greetings’: ‘hello’} La salida estaría […]