¿Por qué obtengo una "sintaxis no válida" de una cadena f? [duplicar]
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?
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.
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.