我正在阅读Python语言参考文档。
在词法分析页面中:
在读取文件的第一行之前,单个0会被推送到堆栈上;这将永远不会被弹出。推送到堆栈上的数字将始终从底部向顶部严格增加。在每个逻辑行的开头,将该行的缩进级别与堆栈顶部进行比较。如果相等,则什么也不会发生。如果大于,则将其推送到堆栈上,并生成一个INDENT标记。
这里说,在一行代码中添加缩进只会将与INDENT相关联的值添加到缩进跟踪堆栈中。
因此,我尝试做一个C++片段的Python等效版本:
int x = 23;
{
int y = 13;
}
int z = 2*x;
使用这个 Python 代码片段
x = 23
y = 13
z = 2*x
但是让Python运行这段代码会生成以下错误:
y = 13
IndentationError: unexpected indent
因此,上述规则并不总是适用的,我想知道:
- 是否有Python等效于上面的C++代码片段
- 在Python中,除了函数和类定义之外的一般情况下,什么情况下可以使用缩进。
class
、with
、for
、while
和if
等关键字引入的代码块。 - chepner