Impresionantes cuerdas f de Python

Aprende a dominar todo el poder de Python f-string

C05348A3-9AB8-42C9-A6E0-81DB3AC59FEB
           

El asombroso poder de Python f-strings

Los literales de cadena formateados, también llamados f-strings , han existido desde Python 3.6, por lo que estoy seguro de que ya ha oído hablar de ellos, pero es posible que no conozca el alcance total de sus poderes.

Formateo de texto y números

Las cadenas F son compatibles con el minilenguaje de especificación de formato de Python, por lo que puede incrustar muchas operaciones de formato en sus modificadores. Nos permite alinear o centrar el texto, agregar ceros/espacios iniciales, establecer separadores de miles y mucho más. Aquí están algunos ejemplos:

pi = 3.1415926
print(f'Pi is approximately equal to {pi:.2f}')
$ Pi is approximately equal to 3.14
 
id = 1
print(f"The id is {id:03d}")
$ The id is 001
 
N = 1000000000
print(f'His net worth is ${N:,d}')
$ His net worth is $1,000,000,000
text = "hello world"
 
# Center text:
print(f"{text:^15}")
$ ' hello world '
 
number = 1234567890
 
# Set separator
print(f"{number:,}")
$ 1,234,567,890
 
number = 123
# Add leading zeros
print(f"{number:08}")
$ 00000123

Cuerdas Fa anidadas

Si las cadenas f básicas no son lo suficientemente buenas para sus necesidades de formato, incluso puede anidarlas entre sí, lo que le permite, por ejemplo, formatear el flotante y alinear a la derecha la cadena:

number = 254.3463
print(f"{f'${number:.3f}':>10s}")
$ ' $254.346'

Formato de fecha y hora

La aplicación de formato de número con f-strings 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 método datetime.strftime. Esto es muy agradable, cuando te das cuenta de que hay más formatos además de los pocos mencionados en los documentos. strftime de Python tambié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-%d o %T, que es un equivalente de %H:%M:%S, también vale la pena se mencionan %x y %X, que son los formatos 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.

from datetime import datetime
today = datetime.today()
 
print(f"{today:%Y-%m-%d}")
$ 2022-03-11
 
print(f"{today:%Y}")
$ 2022
 
print(f"Today is {today}")
$ Today is 2021-07-31 18:20:48.956829
 
print(f"Today is {today:%B %d, %Y}")
$ Today is July 31, 2021
 
print(f"Today is {today:%m-%d-%Y}")
$ Today is 07-31-2021

Escape adecuado

Por supuesto, hay algunas situaciones que requerirán atención adicional al manejar algunos personajes. Aquí están algunos ejemplos:

name = "Paul"
 
print(f'My name is \'{name}\'.')
$ My name is 'Paul'.
 
print(f'My name is {{name}}.')
$ My name is {name}.
 
print(f'My name is {{{name}}}.')
$ My name is {Paul}.
 
print(f'My name is \\{name}\\.')
$ My name is \Paul\.

Conclusión

Además de ser más fáciles de leer que el formato estilo C tradicional, como %, o el método format(), las cadenas f también están optimizadas y son mucho más rápidas de procesar... por lo que esta es definitivamente una solución ganadora.

Comentarios publicados: 0