-1

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

我正在阅读格式化字符串文字(aka 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]

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

文本编辑器:

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

附加功能:

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

python3 test.py

希望这是足够的信息,以便有人可以发现问题。我真的很想解决这些问题f-strings,因此非常感谢任何帮助。

4

1 回答 1

1

由于请求,我仔细检查了我使用的当前 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)上设置的“构建系统”,但是我使用以下代码制作了一个新的构建系统:

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

一旦我保存了这个文件并选择了它,我就可以在 Sublime 中构建代码而没有问题。

于 2017-08-11T21:49:01.850 回答