python-3.x 为什么我从f字符串得到“无效语法”?[duplicate]

cdmah0mi  于 2023-01-27  发布在  Python
关注(0)|答案(3)|浏览(195)
    • 此问题在此处已有答案**:

f-strings giving SyntaxError?(7个答案)
5天前关闭。
我无法让f字符串在Python 3中工作,我在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

我以为我的机器默认为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.

出了什么问题,我该如何解决?

eeq64g8w

eeq64g8w1#

正如Josh Lee在评论部分所建议的那样,这种字符串插值只在Python 3.6中被添加,参见Python 3.6中的新增功能(这里称为“PEP 498:格式化的字符串文字”)。
然而,您似乎使用的是Python 3.5.2,它不支持这种语法。

fjnneemd

fjnneemd2#

这是一个很老的问题,不确定是否在其他地方得到了回答,但遇到了同样的问题,并出现在一些令人困惑的页面上。几分钟后解决了。下面的行应该可以工作。

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

.format适用于3.5。在这里为可能需要它来解决类似问题的人记录它。

djmepvbi

djmepvbi3#

对我有效的(在python3.8.5的sublime中)是去掉了f。

message = "I live in {state}"

我发现这比.format(state)容易

相关问题