【发布时间】:2019-09-28 21:57:32
【问题描述】:
我正在完成 Zed Shaw 的 Learn Python 3 the Hard Way 的练习,但在练习 6 中,我遇到了一个语法错误,我无法弄清楚。我尝试在 Google、StackOverflow(其他帖子)上进行搜索,但提到的解决方案都不适合我。
抛出此错误的代码的 sn-p 是:
types_of_people = 10
x = f"There are {types_of_people} types of people."
print(x)
我在 macOS Mojave 10.14.6 上使用 Visual Studio Code 1.38.1 和 Python 3.7.4 64 位。
令人惊讶的是,我以三种不同的方式执行代码,其中两种方法显示相同的错误,但第三种方法实际上成功地执行了代码。我试图了解为什么 VSCode 无法执行 python 脚本。任何帮助将不胜感激。
方法一
在VSCode中使用标准方式执行python脚本:
这个方法给出了 SyntaxError。错误输出为:
[Running] python -u "/Users/e139177/Documents/Programming/Learn-Programming/tempCodeRunnerFile.py"
File "/Users/e139177/Documents/Programming/Learn-Programming/tempCodeRunnerFile.py", line 2
x = f"There are {types_of_people} types of people."
SyntaxError: invalid syntax
[Done] exited with code=1 in 0.035 seconds
屏幕截图 1 显示了 VS Code 中的错误。
方法二
在 VS Code 中使用了“在终端中运行 Python 文件”选项。
该方法成功执行脚本,生成的输出为:
KENMACC02XG4AEJHD2:Learn-Programminge139177$/usr/local/bin/python3/Users/e139177/Documents/Programming/Learn-Programming/Exercise6.py
There are 10 types of people.
KENMACC02XG4AEJHD2:Learn-Programming e139177$
屏幕截图 2 显示了在 VS Code 终端中成功执行的脚本。
方法3
使用MacOS终端直接执行python脚本,不使用VSCode。
这个方法也给出了相同的 SyntaxError。错误输出为:
KENMACC02XG4AEJHD2:Learn-Programming e139177$ python Exercise6.py
File "Exercise6.py", line 2
x = f"There are {types_of_people} types of people."
^
SyntaxError: invalid syntax
KENMACC02XG4AEJHD2:Learn-Programming e139177$
屏幕截图 3 显示了在 VS Code 终端中成功执行的脚本。
我不知道为什么脚本在 VSCode 终端中运行时会成功执行,但是当使用 VSCode 的“运行”命令执行时,或者直接在 macOS 终端中执行时,它不会这样做。
【问题讨论】:
-
你确定你的“运行”按钮连接的python版本是3.7吗? f-strings 仅在 3.6 中引入
-
让-弗朗索瓦·法布尔您好。是的,我确定连接的版本是 3.7.4 64 位。原因是我在 VSCode 中选择了 Python Interpreter 作为 Python 3.7.4 64 位,您还可以在我附在屏幕左下角的第一个屏幕截图中看到 VSCode 中活动的版本。
-
运行
import sys; print(sys.version),你可能会发现它实际上不是3.7.4。 -
你是对的 user2357112。非常感谢你做的这些。在这种情况下,我如何确保它是 pythong 3.7.4?这是我得到的结果: >>> import sys; print(sys.version) 2.7.10 (default, Feb 22 2019, 21:55:15) [GCC 4.2.1 Compatible Apple LLVM 10.0.1 (clang-1001.0.37.14)] >>>
标签: python visual-studio-code syntax-error python-3.7