¿Por qué obtengo una "sintaxis no válida" de una cadena f? [duplicar]

Resuelto Sven E asked hace 7 años • 3 respuestas

No puedo hacer que f-strings funcionen en Python 3. Intenté esto en REPL:

In [1]: state = "Washington"

In [2]: state
Out[2]: 'Washington'

In [3]: my_message = f"I live in {state}"
File "<ipython-input-3-d004dd9e0255>", line 1
my_message = f"I live in {state}"
                                ^
SyntaxError: invalid syntax

Pensé que mi máquina tenía Python 2 por defecto, pero una comprobación rápida revela:

Python 3.5.2 (default, Nov 17 2016, 17:05:23) 
Type "copyright", "credits" or "license" for more information.

IPython 5.2.2 -- An enhanced Interactive Python.

¿Qué está mal y cómo lo soluciono?

Sven E avatar Feb 09 '17 08:02 Sven E
Aceptado

Como sugirió Josh Lee en la sección de comentarios, ese tipo de interpolación de cadenas se agregó solo en Python 3.6; consulte Novedades de Python 3.6 (aquí se llama " PEP 498 : literales de cadena formateados").

Sin embargo, parece que estás usando Python 3.5.2, que no admite esa sintaxis.

yeputons avatar Feb 09 '2017 02:02 yeputons

Esta es una pregunta bastante antigua y no estoy seguro de si se respondió en otro lugar, pero encontré el mismo problema y aterricé en algunas páginas confusas. Lo descubrí un par de minutos después. La línea de abajo debería funcionar.

my_message = "I live in {}".format(state)

.format funciona para 3.5. Documentarlo aquí para alguien que pueda necesitarlo para un problema similar.

Ritesh Kankonkar avatar Jan 21 '2020 07:01 Ritesh Kankonkar