我最近一直在学习python 3,我无法获得任何涉及字符串插值(格式化)的例子。
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
我只是忽略了基本语法?我在同学的几台计算机上运行相同的命令,似乎执行得很好。
答案 0 :(得分:31)
正如Josh Lee在评论部分所建议的那样,仅在Python 3.6中添加了这种字符串插值,请参阅What’s New In Python 3.6(此处称为&#34; PEP 498:格式化字符串文字&#34;)。
然而,您似乎使用的是Python 3.5.2,它不支持该语法。
答案 1 :(得分:9)
这是一个很老的问题,不确定是否在其他地方回答,但是遇到了同样的问题并落入了一些令人困惑的页面。几分钟后想通了。下面的行应该工作。
{{1}}
.format适用于3.5。在此处为可能需要类似问题的人进行记录。
答案 2 :(得分:-5)
对我有用的(在python 3.8.5中为sublime)是删除f。
write
我发现它比message = "I live in {state}"