python - 导入后的 For 循环在 Python 单行中不起作用

标签 python import terminal syntax-error

如果我使用 import 并且之后是 for,我会得到一个 invalid syntax 错误。我不知道为什么会这样。

> python3 -c 'import os; for a in range(1,5): print(a)'
  File "<string>", line 1
    import os; for a in range(1,5): print(a)
                 ^

删除 import 工作正常:

> python3 -c 'for a in range(1,5): print(a)'
1
2
3
4

或完全删除 for 循环:

> python3 -c 'import os; print(10)'
10

这是怎么回事??

最佳答案

这是一个错误,因为它不在 Python 语法中。

如果您查看 syntax specification for compound statements ,你会看到一个语句列表(即你用分号做的)被定义为:

stmt_list::= simple_stmt (";"simple_stmt)* [";"]

for 构造不是 simple_stmt,而是 compound_stmt

然而,print(10) 是一个 simple_stmt,因此它很好。

关于python - 导入后的 For 循环在 Python 单行中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26778181/

相关文章:

bash - 通过 shell 脚本对 cat 的权限被拒绝

java - 如何通过浏览器运行终端程序?

Python 脚本在 pythonw 下失败

css - 本地存储的 Google 网络字体与在线资源

scala - 无法访问源生成器文件中的项目范围依赖项

python - PyQt5 项目结构和 PyInstaller ModuleNotFoundError

python - 检查另一个中存在哪些行的 pandas

python - spark 中 null 和 NaN 之间的区别?如何处理?

python - pandas groupby 多列

node.js - 安装: react-native init fails - Apparent network issue