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

zyfwsgd6  于 2021-08-20  发布在  Java
关注(0)|答案(3)|浏览(325)

我最近一直在学习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

我只是忽略了基本语法吗?我已经在一些同学的电脑上运行了相同的命令,它似乎执行得很好。

goqiplq2

goqiplq21#

正如josh lee在评论部分中所建议的那样,这种字符串插值仅在python 3.6中添加,请参见python 3.6中的新增内容(这里称为“pep 498:格式化字符串文本”)。
然而,您似乎正在使用python 3.5.2,它不支持这种语法。

3pvhb19x

3pvhb19x2#

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

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

.格式适用于3.5。在这里为可能需要类似问题的人记录。

ewm0tg9j

ewm0tg9j3#

对我来说(在sublime的Python3.8.5中)起作用的是删除f。

message = "I live in {state}"

我发现这比你想象的要容易 .format(state)

相关问题