Python f-strings son más poderosos de lo que piensas

Conozca las características desconocidas de las cadenas f de Python (los literales de cadena formateados) y mejore sus conocimientos y habilidades de formato de texto

Foto de Amador Loureiro en Unsplash

Los literales de cadena con formato, también llamados cadenas f , existen desde Python 3.6, por lo que todos sabemos qué son y cómo usarlos. Sin embargo, hay algunos hechos y características útiles de f-string que quizás no conozcas. Entonces, hagamos un recorrido por algunas características increíbles de f-string que querrá usar en su codificación diaria.

Formato de fecha y hora

La aplicación de formato de números con cadenas f es bastante común, pero ¿sabía que también puede formatear cadenas de fechas y marcas de tiempo?

f-strings puede formatear la fecha y la hora como si usara el datetime.strftimemétodo. Esto es muy bueno, cuando te das cuenta de que hay más formatos además de los pocos mencionados en los documentos. Python strftimetambién admite todos los formatos admitidos por la implementación de C subyacente, que puede variar según la plataforma y es por eso que no se menciona en los documentos. Dicho esto, puede aprovechar estos formatos de todos modos y usar, por ejemplo %F, que es un equivalente de %Y-%m-%do %Tque es un equivalente de %H:%M:%S, también vale la pena mencionar cuáles son %xlos %Xformatos de fecha y hora preferidos por los locales, respectivamente. Obviamente, el uso de estos formatos no se limita a f-strings. Consulte las páginas de manual de Linux para obtener una lista completa de formatos.

Nombres de variables y depuración

Una de las adiciones más recientes a las características de f-string (a partir de Python 3.8) es la capacidad de imprimir nombres de variables junto con el valor:

Esta función se denomina "depuración" y se puede aplicar en combinación con otros modificadores. También conserva los espacios en blanco, por lo f"{x = }"que f"{x=}"producirá cadenas diferentes.

Representación de cadenas

Al imprimir instancias de clase, __str__el método de la clase se usa de forma predeterminada para la representación de cadenas. Sin embargo, si queremos forzar el uso de __repr__, podemos usar el !rindicador de conversión:

También podríamos simplemente llamar repr(some_var)dentro de la cadena f, pero usar el indicador de conversión es una buena solución nativa y concisa.

Rendimiento superior

Las funciones potentes y el azúcar de sintaxis a menudo conllevan una penalización de rendimiento, sin embargo, ese no es el caso cuando se trata de f-strings:

Las muestras anteriores se probaron con timeitun módulo como este: python -m timeit -s 'x, y = "Hello", "World"' 'f"{x} {y}"'y como puede ver, las cadenas f son en realidad las más rápidas de todas las opciones de formato que proporciona Python. Por lo tanto, incluso si prefiere usar algunas de las opciones de formato más antiguas, podría considerar cambiar a cadenas f solo para aumentar el rendimiento.

Potencia total de especificaciones de formato

F-strings admite el minilenguaje de especificación de formato de Python , por lo que puede incrustar muchas operaciones de formato en sus modificadores:

El minilenguaje de formato de Python incluye mucho más que solo las opciones para formatear números y fechas. Nos permite alinear o centrar el texto, agregar ceros/espacios iniciales, establecer un separador de miles y más. Obviamente, todo esto está disponible no solo para f-strings, sino también para todas las demás opciones de formato.

Cuerdas Fa anidadas

Si las cadenas f básicas no son lo suficientemente buenas para sus necesidades de formato, incluso puede anidarlas entre sí:

Puede incrustar f-strings dentro de f-strings para problemas de formato complicados, como agregar un signo de dólar a un flotador alineado a la derecha, como se muestra arriba.

Las cadenas f anidadas también se pueden usar en caso de que necesite usar variables en la parte del especificador de formato. Esto también puede hacer que la cadena f sea más legible:

Formato de condicionales

Sobre la base del ejemplo anterior con cadenas f anidadas, podemos ir un poco más allá y usar operadores condicionales ternarios dentro de la cadena f interna:

Esto puede volverse muy ilegible muy rápidamente, por lo que es posible que desee dividirlo en varias líneas.

Expresiones Lambda

Si desea ampliar los límites de las cadenas f y también enojar a quien lea su código, entonces, con un poco de esfuerzo, también puede usar lambdas:

Los paréntesis alrededor de la expresión lambda son obligatorios en este caso, debido a que, de :lo contrario, sería interpretado por f-string.

Pensamientos finales

Como hemos visto aquí, las cuerdas f son bastante poderosas y tienen muchas más funciones de las que la mayoría de la gente piensa. Sin embargo, la mayoría de estas características "desconocidas" se mencionan en los documentos de Python, por lo que recomiendo leer las páginas de documentos no solo de f-strings, sino de cualquier otro módulo/función de Python que pueda estar usando. Sumergirte en los documentos a menudo te ayudará a descubrir algunas características muy útiles que no encontrarás incluso cuando busques en StackOverflow .

Este artículo se publicó originalmente en martinheinz.dev

Suggested posts

Por qué algunos freelancers están fingiendo sus vidas

Por qué algunos freelancers están fingiendo sus vidas

Hace poco estuve en Linkedin, la red social profesional más grande del mundo, y encontré publicaciones de diseñadores independientes a los que sigo que me llamaron la atención. Todos publicaron fotos desde aviones, en la playa con sus computadoras portátiles, desde piscinas y oficinas con vistas increíbles.

El asesinato de Jordan Neely y el problema del racismo “patriótico”

¿Puede Estados Unidos dar el paso esencial de no equiparar el comportamiento racista con ser un buen estadounidense?

El asesinato de Jordan Neely y el problema del racismo “patriótico”

[Alerta de activación: este ensayo incluye capturas de pantalla de personas que elogiaron al asesino de Jordan Neely.] Los funcionarios encargados de hacer cumplir la ley finalmente, y quizás a regañadientes, acusaron a Daniel Penny, el hombre que estranguló a Jordan Neely hasta que murió, por ese homicidio.

Related posts

Financiamiento de la eliminación de carbono en el año fiscal 24

El desglose de las solicitudes de asignaciones de Carbon180 a través de vías

Financiamiento de la eliminación de carbono en el año fiscal 24

Por Alyson Lee, asesora de gestión de asuntos gubernamentales El proceso de asignaciones anuales del gobierno federal es fundamental para nuestros esfuerzos por financiar la eliminación de dióxido de carbono (CDR). Cada año, Carbon180 envía solicitudes a varias oficinas del Congreso para ayudar a guiar hacia dónde fluirán los dólares del próximo año.

VIDA ILIMITADA

Cuando creces, tiendes a que te digan que el mundo es como es y que tu vida es solo vivir tu vida dentro del mundo, nunca arriesgar tu vida, solo sigue un camino establecido y muere al final, y trata de no hacerlo. golpea demasiado las paredes. Pero esa es una vida muy limitada.

Ese Archivo de Amenazas: Vol 7 Black Basta

Ese Archivo de Amenazas: Vol 7 Black Basta

En el mundo interconectado de hoy, la amenaza de los ataques cibernéticos es más frecuente que nunca. Los ciberdelincuentes y los actores del estado-nación buscan constantemente explotar las vulnerabilidades y robar datos valiosos, lo que representa un riesgo significativo para las organizaciones de todos los tamaños.

Twitter de televisión en red

Twitter de televisión en red

Lo que es viejo ahora es nuevo otra vez y lo que solía ser algo reluciente ahora se siente aburrido. No me refiero a que los jeans JNCO regresen entre los chicos geniales del centro de la ciudad junto con otras modas de fines de la década de 1990.