f-strings适用于python IDLE但不适用于Sublime Text

时间:2020-08-09 01:45:40

标签: python sublimetext f-string

我刚刚开始阅读 Python Crash Course 的第二版,以防万一有人有这本书,我在第二章的“使用字符串中的变量”小节中。

问题是,当我输入

first_name = "ada"
last_name = "lovelace"
full_name = f"{first_name} {last_name}"
print(full_name)

应该在Sublime Text上输出

ada lovelace

但是,相反,我在阅读时收到错误消息

  File "/Users/davidjiang/Code/Python/python_work/full_name.py", line 3
    full_name = f"{first_name} {last_name}"
                                          ^
SyntaxError: invalid syntax
[Finished in 0.1s with exit code 1]
[shell_cmd: python -u "/Users/davidjiang/Code/Python/python_work/full_name.py"]
[dir: /Users/davidjiang/Code/Python/python_work]
[path: /Library/Frameworks/Python.framework/Versions/3.8/bin:/Library/Frameworks/Python.framework/Versions/3.7/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin]

我已经通过插入检查了Sublime Text是否在python3.7中运行

{ 
    "cmd": ["python3", "-u", "$file"], 
}

进入构建系统Python3.sublime-build。我的终端也运行在python3中。

我还通过找到并使用this link explaining how to insert values into strings.来确保我的代码没有任何错误。 另外,我正在阅读的书附带了一系列在线资源,可以对课程进行补充,包括开始时编写的代码。当我将其放入python IDLE时,代码工作正常。

有人可以解释为什么代码在Sublime Text上不起作用吗?预先感谢!

编辑:显然,我的Sublime Text正在运行python2而不是python3。似乎输入上述代码无效,是否有人对将Sublime更改为python3有任何建议?

3 个答案:

答案 0 :(得分:1)

使用python Repl应该可以工作,因为它可以运行F字符串和输入。确保您将其用作附加组件,否则将无法使用。 使用此方法应有助于- https://angular.io/guide/observables

答案 1 :(得分:1)

在您的错误输出中,它写的清楚

[shell_cmd: python -u "/Users/davidjiang/Code/Python/python_work/full_name.py"]

这里的关键是shell命令是python而不是python3。因此,您没有运行正确的构建系统。

{
    "shell_cmd": "python3 -u \"$file\"",
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python",

    "env": {"PYTHONIOENCODING": "utf-8"},

    "variants":
    [
        {
            "name": "Syntax Check",
            "shell_cmd": "python3 -m py_compile \"${file}\"",
        }
    ]
}

将其另存为python3.sublime-build(在Packages \ User目录中)

使用ctrl + shift + b并选择python3。

下次ctrl + b会自动使用python3

答案 2 :(得分:0)

有一种方法可以下载python 3来升华文本。首先,您要转到构建系统选项,然后一直向下滚动到“新建构建系统”。从那里将打开一个新选项卡,并显示以下内容:{“ shell_cmd”:“ make”}。删除并替换为:

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

然后保存,将其命名为任意名称(确保将其另存为.sublime-build文件)。现在,您应该在构建系统中使用它。如果保存后不存在,则可能必须重新启动程序。