在哪些情况下可以在python中使用缩进?

在哪些情况下可以在python中使用缩进?,python,indentation,Python,Indentation,我在看书 在 在读取文件的第一行之前,在堆栈上推一个零;这件事再也不会发生了。压在堆栈上的数字将始终严格地从下到上递增。在每个逻辑行的开头,将行的缩进级别与堆栈顶部进行比较。如果它相等,什么也不会发生。如果较大,则将其推送到堆栈上,并生成一个缩进标记 这里,它表示在一行上添加缩进只会将与缩进相关联的值添加到缩进跟踪堆栈中 所以我尝试做python的C++片段< /p> int x = 23; { int y = 13; } int z = 2*x; 使用这个python代码片段 x

我在看书

在读取文件的第一行之前,在堆栈上推一个零;这件事再也不会发生了。压在堆栈上的数字将始终严格地从下到上递增。在每个逻辑行的开头,将行的缩进级别与堆栈顶部进行比较。如果它相等,什么也不会发生。如果较大,则将其推送到堆栈上,并生成一个缩进标记

这里,它表示在一行上添加缩进只会将与缩进相关联的值添加到缩进跟踪堆栈中


所以我尝试做python的C++片段< /p>

int x = 23;
{
    int y = 13;
}
int z = 2*x;
使用这个python代码片段

x = 23
    y = 13
z = 2*x
但让python运行此代码会产生以下错误:

    y = 13
IndentationError: unexpected indent

我想知道的是,上述规则并非一直适用

  • 是否有与上面C++代码片段
  • 等价的Python?
  • python中的具体情况是什么,当我可以使用缩进时, 除了一般情况,如函数和类定义
“在每个逻辑行的开头,将行的缩进级别与堆栈顶部进行比较。如果相等,则什么也不会发生。如果较大,则将其推送到堆栈上,并生成一个缩进标记。”

因此,这里它告诉您有关何时生成缩进标记的所有信息。现在您还需要知道,只有关键字class、def、if、for、while等允许您拥有额外的当前缩进标记

“当我可以使用缩进时,除了函数和类定义之类的一般情况。”->从来没有

注意:换行符不算作缩进标记。因此:

>>> a = [1, 2, \  # \ is breaking line.
        3]
可能的话,从技术上讲,它不算缩进,因为它是相同的python行。函数参数也一样:

>>> a = np.array([0,1],
                 dtype=float)

我认为缩进最重要的用法是在循环中。因为python没有像Matlab中那样的循环的
end
,所以具有正确缩进的行在循环中

在Python中没有直接的等价物,因为Python没有真正的块作用域。听起来您对Python文档读得不够深入,如果您继续读下去,您将了解何时需要缩进。您使用缩进来指示块中包含的内容。然而,Python中没有“匿名”块,只有
class
with
for
while
if
等引入的块。有什么东西像临时变量一样我可以在使用后快速转储吗?在Python中,你不能像在C/C++中那样做,在那些语言中你可以使用
{}
限制代码的范围,但是python只理解基于标识的代码,因为他是一种解释语言,没有编译,并且不使用
{}
,基本上标识就是python中的一切:)