strings print places float python scope string-formatting python-3.6 f-string

print - python string format



Cadena con el prefijo ''f'' en python-3.6 (5)

Estoy probando Python 3.6. Al revisar el nuevo código, me topé con esta nueva sintaxis:

f"My formatting string!"

Parece que podemos hacer cosas como esta:

>>> name = "George" >>> print(f"My cool string is called {name}.") My cool string is called George.

¿Alguien puede arrojar algo de luz sobre el funcionamiento interno de esto? En particular, ¿cuál es el alcance de las variables que puede tomar una cadena con prefijo f?


También podría valer la pena señalar que este PEP498 tiene un puerto para Python <3.6

pip install fstring

from fstring import fstring x = 1 y = 2.0 plus_result = "3.0" print fstring("{x}+{y}={plus_result}") # Prints: 1+2.0=3.0


Tuve un problema como este, en la línea del módulo importado: response_json = requests.get(f''{self.api_url}/{path}'', params).json() arreglé así:

response_json = requests.get(''{}/{}''.format(self.api_url, path), params).json()


Ver PEP 498 Interpolación de cadena literal :

Las expresiones que se extraen de la cadena se evalúan en el contexto donde apareció la cadena f. Esto significa que la expresión tiene acceso completo a variables locales y globales. Se puede utilizar cualquier expresión Python válida, incluidas las llamadas a funciones y métodos.

Entonces las expresiones se evalúan como si aparecieran en el mismo ámbito; locales, cierres y globales funcionan todos igual que en otro código en el mismo contexto.

Encontrará más detalles en la documentación de referencia :

Las expresiones en literales de cadena con formato se tratan como expresiones regulares de Python rodeadas de paréntesis, con algunas excepciones. No se permite una expresión vacía, y una expresión lambda debe estar entre paréntesis explícitos. Las expresiones de reemplazo pueden contener saltos de línea (por ejemplo, en cadenas entre comillas triples), pero no pueden contener comentarios. Cada expresión se evalúa en el contexto donde aparece el literal de cadena con formato, en orden de izquierda a derecha.

Como está probando una versión alfa 3.6, lea la documentación de Novedades en Python 3.6 . Resume todos los cambios, incluidos los enlaces a la documentación relevante y las PEP.

Y para ser claros: 3.6 aún no se ha lanzado; no se espera que el primer alfa se lance hasta mayo de 2016. Consulte el calendario de lanzamientos 3.6 .


letra f para "formato" como en f "hola {somevar}. Esta pequeña f antes de" (comillas dobles) y los caracteres {} le dicen a python 3, "oye, esta cadena necesita ser formateada. Así que pon estas variables en allí y formatearlo ".

Espero que esto esté claro.


Las cadenas f también admiten cualquier expresión de Python dentro de las llaves.

print(f"My cool string is called {name.upper()}.")