我刚刚开始阅读 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有任何建议?
答案 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文件)。现在,您应该在构建系统中使用它。如果保存后不存在,则可能必须重新启动程序。