在尝试执行字符串插值时获得“无效语法”

我最近一直在学习 python3,我不能得到任何例子涉及字符串插值(格式)的工作。

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

我以为我的机器默认是 python 2,但是快速检查显示:

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.

我在 Ubuntu 16.04上:

python3 --version
Python 3.5.2

我是不是忽略了基本语法?我在几台电脑上运行过同样的命令,它似乎执行得很好。

98165 次浏览

正如 Josh Lee 在评论部分所建议的那样,这种字符串插值只是在 Python 3.6中添加的,参见 Python 3.6中的新特性(这里称为“ PEP 498: 格式化的字符串文字”)。

但是,您似乎使用的是 Python 3.5.2,它不支持这种语法。

这是一个相当老的问题,不知道是否在其他地方得到了答案,但是遇到了同样的问题,并且出现在一些令人困惑的页面上。几分钟后就想明白了。下面一行应该可以。

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

. format 适用于3.5。在这里为那些可能需要它来解决类似问题的人编写文档。

对我有效的方法(在 python3.8.5中使用 sublime)是删除 f。

message = "I live in {state}"

我发现它比 .format(state)更容易