【发布时间】:2020-08-09 01:45:40
【问题描述】:
我刚刚开始阅读第二版Python速成课程,以防万一有人有这本书,我在第 2 章的“在字符串中使用变量”小节。
问题是,当我进入时
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?
【问题讨论】:
-
"cmd": ["python3", "-u", "$file"]并不能确保您运行的是 Python 3.7。尝试运行一个只有import sys; print(sys.version)的程序,看看它会打印什么。 -
另外,我可以在其中看到一些输出,表明您可能已经安装了 Python 3.8 和 3.7(在您可能运行的任何默认 Python 之上)。
-
@user2357112supportsMonica 感谢您的快速回复! Sublime Text 神秘地运行在 python2.7.16 中。但是,重新输入 ` "cmd": ["python3", "-u", "$file"] ` 并没有将其更改为 python3。你知道我如何进行切换吗?谢谢!
-
为了清楚起见,Sublime 所做的只是要求外部事物(在本例中为 Python)运行文件,所以您的问题不是“f 字符串在 Sublime 中不起作用”,而是使用了错误版本的 Python。诊断显示 Sublime 尝试运行的内容,而不是您认为的构建系统。你可能想从
Tools > Build System中选择Python3以确保Sublime 使用它。 -
@OdatNurd 我没有来自构建系统选项的 python3 选项;我只有蟒蛇。我运行上面的“cmd”程序为python3创建了一个构建系统,但是在我运行程序之后没有选项。此时,我想我要重新安装 sublime text 看看会发生什么。
标签: python sublimetext f-string