Python 3.6+ 中的格式化字符串文字

Formatted string literals in Python 3.6+

Python 3.6+

中的格式化字符串文字

我正在阅读格式化字符串文字 (a.k.a f-string),这是 Python 3.6 更新中添加的功能。我发现它比以前做类似项目的方法更容易阅读,但我在执行代码时遇到了麻烦。这是我到目前为止所做的示例 (test.py):

#!/usr/bin/python3

greeting = 'Hello'
name = 'World'

message = f'{greeting}, {name}.'

print(message)

如您所见,这是我用来更加熟悉此 f-string 功能的简单代码。当我尝试 运行 此代码时,我不断收到此错误:

File "/home/user/Desktop/Python/My Programs/test.py", line 5
    message = f'{greeting}, {name}.'
                                   ^
SyntaxError: invalid syntax
[Finished in 0.0s with exit code 1]

现在这个错误响应告诉我最后的 ( ' ) 是导致它 运行 不正确的原因。我试过 space 不同的方式,看看它是否可以这么简单,但仍然没有运气。下面是我用来编写和执行 Python 代码的设置:

文本编辑器:

我目前正在使用 Sublime Text 添加了帮助代码 Python3 代码的功能。这些功能包括:BracketHighlighterAnaconda 包。我还更改了 Sublime Text 中的一些设置,但我不认为这是导致此问题的原因,因为我主要只更改了图形功能。

额外:

起初我以为 Sublime Text 可能会尝试使用较低版本的 Python 执行 Python3 代码,所以当我尝试通过终端在 Ubuntu 中执行它时,它仍然给了我同样的错误。我用这个执行了代码:

python3 test.py

希望这些信息足以让人们发现问题。我真的很想全神贯注于这些 f-strings 所以非常感谢任何帮助。

根据要求,我仔细检查了 Python 的当前版本 我使用的是:

import sys; print(sys.version)

回复如下:

3.6.1 (default, Mar 22 2017, 06:17:05) 
[GCC 6.3.0 20170321]

代码的解决方案:

似乎解决我问题的方法是将此添加到终端命令以执行它:

python3.6 test.py

之前我只有:

python3 test.py

那只是用了Python3.5.x来执行而已。现在,当我使用 python3.6 时,一切都正常运行。

Sublime Text 解决方案:

同样对于 Sublime Text,我发现它是在其出厂 Python 版本 (3.5.x) 上设置的 'Build System',但是我创建了一个新的 Build系统代码如下:

{
    "cmd": ["/usr/bin/python3.6", "-u", "$file"],
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python"
}

一旦我保存并选择了这个文件,我就能够在 Sublime 中毫无问题地构建代码。