我正在读Python Language reference。
在读取文件的第一行之前,将单个零压入堆栈;这将不再弹出。压入堆栈的数字将始终严格按照从下到上的顺序递增。在每条逻辑行的开头,将行的缩进级别与堆栈顶部进行比较。如果相等,则什么也不会发生。如果较大,则将其压入堆栈,并生成一个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
所以我想知道
答案 0 :(得分:1)
“在每条逻辑行的开始处,将行的缩进级别与堆栈的顶部进行比较。如果相等,则什么也不发生。如果较大,则将其压入堆栈,并且将一个INDENT令牌生成。”
因此,在这里它告诉您有关何时生成缩进令牌的所有信息。现在,您还需要知道,只有关键字class def,if,for,while等可以使您拥有当前的附加缩进标记。
“当我可以使用缩进时,除了函数和类定义之类的一般情况之外”。 ->从不。
注意:换行符不算作缩进标记。所以:
>>> a = [1, 2, \ # \ is breaking line.
3]
是可能的,因为它是同一行python,所以从技术上讲它不算作缩进。函数参数也一样:
>>> a = np.array([0,1],
dtype=float)
答案 1 :(得分:0)
我认为缩进的最重要用法是循环。因为python在Matlab中没有end
for循环,所以具有正确缩进的行在循环中。