Tengo una cadena en la que me gustaría corchetes, pero también aprovecho la función de cadenas f. ¿Hay alguna sintaxis que funcione para esto?
Aquí hay dos formas en que no funciona. Me gustaría incluir el texto literal {bar} como parte de la cadena.
foo = "test" fstring = f"{foo} {bar}" NameError: name 'bar' is not defined
fstring = f"{foo} \{bar\}" SyntaxError: f-string expression part cannot include a backslash
Resultado deseado:
'test {bar}' Editar: Parece que esta pregunta tiene la misma respuesta que ¿Cómo puedo imprimir caracteres literales de llaves en una cadena y también usar .format en él? , pero solo puede saberlo si sabe que str.format usa las mismas reglas que f-string. Entonces, con suerte, esta pregunta tiene valor para vincular a los buscadores de cadenas f con esta respuesta.
Aunque hay un error de sintaxis personalizado del analizador, funciona el mismo truco que para llamar a .format en cadenas normales.
Usa rizos dobles:
>>> foo = 'test' >>> f'{foo} {{bar}}' 'test {bar}'Se menciona en la especificación aquí y en los documentos aquí .