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?
python
python-3.x
string
formatting
f-string
fedorqui 'así que deja de dañar'
fuente
fuente

f"{{2+2}}"yf"{{{2+2}}}", que son'{2+2}'y'{4}'respectivamentef'{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 quef'74'.str.formattambién lo hace."{74}".format(...)requeriría una secuencia con al menos 74 elementos.Respuestas:
Las llaves dobles escapan de las llaves, para que no ocurra interpolación:
{{➝{y}}➝}. Y74sigue siendo una cadena sin cambios,'74'.Con llaves dobles, las llaves dobles exteriores se escapan, igual que arriba. Las llaves internas, por otro lado, conducen a una interpolación regular de cadenas del valor
74.Es decir, la cadena
f'{{{74}}}'es equivalente af'{{ {74} }}', pero sin espacios (o, equivalentemente, a'{' + f'{74}' + '}').Puede ver la diferencia al reemplazar la constante numérica por una variable:
fuente