Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中,`if`和`def`下的缩进代码都被称为块吗?_Python_Scope_Block_Terminology_Indentation - Fatal编程技术网

在Python中,`if`和`def`下的缩进代码都被称为块吗?

在Python中,`if`和`def`下的缩进代码都被称为块吗?,python,scope,block,terminology,indentation,Python,Scope,Block,Terminology,Indentation,在Python中,如def,class引入了一个新的。其他的,如if或for则不这样做-它们使用封闭代码的范围。(范围分辨率在中进行了说明。) 这两个不同类型的关键字下“缩进”的代码行的正确术语是什么 例如: def foo(): do_bar() # indent type 1 do_another_bar() # indent type 1 例2: if True: do_something() # indent type 2 do_more_things(

在Python中,如
def
class
引入了一个新的。其他的,如
if
for
则不这样做-它们使用封闭代码的范围。(范围分辨率在中进行了说明。)

这两个不同类型的关键字下“缩进”的代码行的正确术语是什么

例如:

def foo():
    do_bar() # indent type 1
    do_another_bar() # indent type 1
例2:

if True:
    do_something() # indent type 2
    do_more_things() # indent type 2

缩进的“类型1”和“类型2”都称为代码的“块”吗?

一般来说,是的,缩进到
下的文本的任何部分都称为“块”


C/C++/Java/JavaScript/Perl/PHP/等中花括号内的任何文本部分也是如此。缩进是Python的花括号。

一般来说,是的,缩进在
下的任何文本部分都称为“块”

C/C++/Java/JavaScript/Perl/PHP/等中大括号内的任何文本部分也是如此。缩进是Python的大括号。

复合语句和套件 Python中a的语法将缩进的代码块定义为“套件”。例如:

if_stmt ::=  "if" expression ":" suite
             ( "elif" expression ":" suite )*
             ["else" ":" suite]
因此,在一个实际示例中,如:

if True:
    print "It's true!"
包含print语句的行(以及该缩进级别内的任何其他行)将是一个套件

如果将每一级缩进看作一个代码块会有所帮助的话,那就好了。但是,Python语法将其称为套件。:)

复合语句和套件 Python中a的语法将缩进的代码块定义为“套件”。例如:

if_stmt ::=  "if" expression ":" suite
             ( "elif" expression ":" suite )*
             ["else" ":" suite]
因此,在一个实际示例中,如:

if True:
    print "It's true!"
包含print语句的行(以及该缩进级别内的任何其他行)将是一个套件


如果将每一级缩进看作一个代码块会有所帮助的话,那就好了。但是,Python语法将其称为套件。:)

语句下面缩进的那一行叫做a。我很难真正理解你在问什么。if语句和for循环中引入的变量是局部范围的一部分,如果这是您要问的…@mgilson:我不是指有效的变量命名。我试图谈论代码块,但不确定这是否是正确的术语。我试图用一个例子来澄清我的问题。@mgilson,但我认为问题是指
if
for
不创建新的局部作用域,而
def
class
创建新的局部作用域。显然,任何地方引入的变量都是其局部作用域的一部分,除非另有声明,但这个作用域有多大是个问题。@naxa--我明白了。谢谢你澄清这个问题。语句下面缩进的那一行叫做a。我很难真正理解你在问什么。if语句和for循环中引入的变量是局部范围的一部分,如果这是您要问的…@mgilson:我不是指有效的变量命名。我试图谈论代码块,但不确定这是否是正确的术语。我试图用一个例子来澄清我的问题。@mgilson,但我认为问题是指
if
for
不创建新的局部作用域,而
def
class
创建新的局部作用域。显然,任何地方引入的变量都是其局部作用域的一部分,除非另有声明,但这个作用域有多大是个问题。@naxa--我明白了。谢谢你澄清这个问题。我怀疑不使用“块”这个词是为了避免混淆熟悉块范围语言的人。这并没有多大帮助。我怀疑不使用“块”一词是为了避免让熟悉块范围语言的人感到困惑。这并不是说这有多大帮助。