python缩进规则叫什么


本文摘自php中文网,作者silencement,侵删。

Python中的缩进(Indentation)决定了代码的作用域范围。这一点和传统的c/c++有很大的不同(传统的c/c++使用花括号花括号{}符决定作用域的范围;python使用缩进空格来表示作用域的范围,相同缩进行的代码是处于同一范围)。

每行代码中开头的空格数(whitespace)用于计算该行代码的缩进级别(Indentation level),注意一个Tab会被替换为1~8个Space(具体的空格数量,不同的编译器有不同的数量),缩进级别为0表示无缩进空格。

在一个源文件不建议同时使用空格和制表缩进符,当使用别人代码的时候几乎是不可能知道别人使用的是空格还是制表符,这时最好统一缩进,在IDEL编辑器中可以使用 Edit > Untabify Region 将任何制表符转化为空格。

Python中的每一条语句都有一个缩进级别,并且缩进级别会使用栈的数据结构进行存储。在开始读取文件之前,0(表示缩进级别为0,无缩进)会被首先压入栈中。然后从文件开头到末尾,依次读取每行逻辑代码,每行逻辑代码的缩进级别都会和栈顶值进行比较,如果相等,那么什么都不会发生;如果比栈顶值大的话,那么该行逻辑代码的缩进级别就会被压入栈中,同时会生成一个缩进标记(INDENT TOKEN);如果比栈顶值小的话,那么栈中所有比该行逻辑代码缩进级别大的值都会从栈中移除,并且还会生成一个扩展标记(DEDENT TOKEN)。

下面是一个正确的缩进案例:

1

2

3

4

5

6

7

8

9

10

11

def perm(l):#0

        # Compute the list of all permutations of l

    if len(l) <= 1:# 1

                  return [l]# 2

    r = []# 3

    for i in range(len(l)):# 4

             s = l[:i] + l[i+1:]# 5

             p = perm(s)# 6

             for x in p:# 7

              r.append(l[i:i+1] + x)# 8

    return r# 9

下面是一个错误的案例

1

2

3

4

5

6

7

def perm(l):                       #1 error: first line indented

    for i in range(len(l)):             #2 error: not indented

        s = l[:i] + l[i+1:]

            p = perm(l[:i] + l[i+1:])   #3 error: unexpected indent

            for x in p:

                    r.append(l[i:i+1] + x)#4

                return r                #5 error: inconsistent dedent

以上就是python缩进规则叫什么的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

django是什么?django中mvc和mvt模式的简单介绍(图文)

Python3.5和3.6兼容吗

pycharm怎么改成中文界面

现在学Python能做什么?学完Python可以当黑客吗

pandas数据处理基础之筛选指定行或者指定列的数据

win10怎么装Python2?

Python如何传递参数

Python整数类型的相关介绍

Python实现高性能测试工具(二)

理解Python的全局变量和局部变量

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...