Las cadenas f están disponibles en Python 3.6 y son muy útiles para formatear cadenas:
>>> n='you'
>>> f'hello {n}, how are you?'
'hello you, how are you?'
Leer más sobre ellos en las f-Strings de Python 3: una sintaxis de formato de cadena mejorada (Guía) . Encontré un patrón interesante:
Tenga en cuenta que el uso de llaves triples dará como resultado que solo haya llaves simples en su cadena:
>>> f"{{{74}}}" '{74}'
Sin embargo, puede obtener más llaves para mostrar si usa más de llaves triples:
>>> f"{{{{74}}}}" '{{74}}'
Y este es exactamente el caso:
>>> f'{74}'
'74'
>>> f'{{74}}'
'{74}'
Ahora si pasamos de dos {
a tres, el resultado es el mismo:
>>> f'{{{74}}}'
'{74}' # same as f'{{74}}' !
¡Entonces necesitamos hasta 4! ( {{{{
) para obtener dos llaves como salida:
>>> f'{{{{74}}}}'
'{{74}}'
¿Por qué es esto? ¿Qué sucede con dos llaves para que Python requiera una extra a partir de ese momento?
f'{2+2}'
devuelve 4, f'{{2+2}}'
devuelve 2 + 2, f'{{{2+2}}}'
➝ {4}, f'{{{{2+2}}}}'
➝ {{2 + 2}} y así sucesivamente. Tiene sentido, pero se desconcierta un poco a primera vista.
f'{74}'
es lo mismo que f'74'
.
str.format
también lo hace.
"{74}".format(...)
requeriría una secuencia con al menos 74 elementos.
f"{{2+2}}"
yf"{{{2+2}}}"
, que son'{2+2}'
y'{4}'
respectivamente