精华内容
下载资源
问答
  • python缩进规则

    2020-12-01 22:38:16
    c与python缩进规则 c:c的缩进没有具体要求,主要是为了美观,同一个代码可以写的很好看也可以写得很难看,不会影响运行,例如 无缩进时 #include<stdio.h>void main(){printf("hello world");} 有缩进时 #...

    python的缩进规则

    c:c实际上没有缩进,主要是为了提升可读性,加上缩进的编程语句更容易理解意思,缩进不会影响程序运行,例如

    无缩进时
    #include<stdio.h>void main(){printf("hello world");}
    有缩进时
    #include<stdio.h>
    void main()
    {
        printf("hello world");
    }
    二者运行结果一样,显然有缩进时显得更加整齐,清晰,美观,可读性也更高
    

    python:与c语言不同,缩进在python中的地位非常重要,
    python会严格要求缩进,如果不按照规律进行,可能会出现语法错误甚至逻辑错误。例如:unexpected indent等
    至于为什么python强制使用缩进,这里冒昧地引用‘python猫’的文章

    https://blog.csdn.net/chinesehuazhou2/article/details/106045371

    文中讲了很多种可能的原因,就个人而言,我认为它是为了提高代码的可读性,这是我使用缩进后的直观感受,当然你有什么其他观点我们也可以讨论一下。
    在python中Tab和空格都可以表示缩进,但是二者有很多不同,这里我列举两条

    1. first
      不同编译器中Tab代表的缩进不一样,这是个人进行设置的可以是四个也可以是八个,同样的代码在不同编译器中打开后显示可能不一样。
      而空格是恒定的就只占一个字符
    2. second
      相应的ASCII也不一样,Tab是9,空格是32,因此二者容易引起错误
    class MyForm(Form):
        value1 = StringField('value1')
        value2 = StringField('value2')
        value3 = StringField('value3')        #这行用的是Tab缩进
        submit = SubmitField('Submit')
    

    看上去没有问题,但是运行会报错,就是由Tab和空格不同引起的。
    或许有些人会说我用IDLE,我用pc从来没有遇到过,这是因为编译器就是IDLE(Integrated Development and Learning Environment),PC(PyCharm CE)替你做了很多事,它们将一个Tab(9)转换成了四个(或者八个)空格(32),但不是所有的人都会帮你做这件事。
    综上所述,个人建议缩进多用空格少用Tab键

    展开全文
  • Python中的缩进(Indentation)决定了代码的作用域范围。这一点和传统的c/c++有很大的不同(传统的c/c++使用花括号{}符,python使用缩进空格)。 每行代码中开头的空格数(whitespace)用于计算该行代码缩进级别...
  • Python缩进规则

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

    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)。

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

    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
    

    上面的#0行,缩进0个字符,由于文件读取之前0已经被压入栈中了,所以栈中的数据不会发生改变。#1缩进4个字符,4被压入栈中。#2缩进18个字符,18被压入栈中。#3缩进4个字符,18被弹出栈,栈顶值又为4了。#4和#3缩进一样,所以不更新栈数据。#5缩进13个字符,所以13被压入栈中。#5、#6和#7的缩进一样,不更新栈数据。#8缩进14个字符,14被压入栈中。#9的缩进4个字符,所以栈中的13和14都会弹出,栈顶值又恢复为4。

    下面是一个错误的案例

    '''
    遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
    寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
    '''
    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
    

    #1、#2和#3处的错误解释的很清楚了。#5的缩进级别在栈中找不到所以出错,#5处的缩进级别是14,比它的上面一行缩进级别18,所以在#5处应该进行出栈处理,但是在栈中找不到14这个级别,所以出错。

    又比如:

    if True:
        print("hello girl")
    else:
        print("hello boy")
     print("end")
    

    最后一行代码的缩进级别是1,而且比上一行代码的缩进级别小,所以应该出栈处理,但是在出站的时候找不到栈中以前有1的级别,所以报错。修改这个错误,只需要将最后一行的空格去掉就可以。

    展开全文
  • 不管怎么样,Python的开发者有意让违反了缩进规则的程序不能通过编译,以此让程序员养成良好的编程习惯。并且Python语言利用缩进表示语句块的开始和退出,而非使用{}或者其他字符。 今天就简单和大家介绍一下Python...
  • Python中的缩进(Indentation)决定了代码的作用域范围。这一点和传统的c/c++有很大的不同(传统的c/c++使用花括号{}符,python使用缩进空格)。每行代码中开头的空格数(whitespace)用于计算该行代码缩进级别...

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

    每行代码中开头的空格数(whitespace)用于计算该行代码的缩进级别(Indentation level),注意一个Tab等于8个空格(Space),缩进级别为0表示无缩进空格。

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

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

    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

    上面的#0行,缩进0个字符,由于文件读取之前0已经被压入栈中了,所以栈中的数据不会发生改变。#1缩进4个字符,4被压入栈中。#2缩进18个字符,18被压入栈中。#3缩进4个字符,18被弹出栈,栈顶值又为4了。#4和#3缩进一样,所以不更新栈数据。#5缩进13个字符,所以13被压入栈中。#5、#6和#7的缩进一样,不更新栈数据。#8缩进14个字符,14被压入栈中。#9的缩进4个字符,所以栈中的13和14都会弹出,栈顶值又恢复为4。

    下面是一个错误的案例

    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

    #1、#2和#3处的错误解释的很清楚了。#5的缩进级别在栈中找不到所以出错,#5处的缩进级别是14,比它的上面一行缩进级别18,所以在#5处应该进行出栈处理,但是在栈中找不到14这个级别,所以出错。

    又比如:

    if True:

    print("hello girl")

    else:

    print("hello boy")

    print("end")

    最后一行代码的缩进级别是1,而且比上一行代码的缩进级别小,所以应该出栈处理,但是在出站的时候找不到栈中以前有1的级别,所以报错。

    要修改的话,只需要将最后一行的空格去掉就可以。

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

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

    欢迎搜索:泉小朵,Python最快入门教程。

    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)。

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

    复制代码

    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

    复制代码

    上面的#0行,缩进0个字符,由于文件读取之前0已经被压入栈中了,所以栈中的数据不会发生改变。#1缩进4个字符,4被压入栈中。#2缩进18个字符,18被压入栈中。#3缩进4个字符,18被弹出栈,栈顶值又为4了。#4和#3缩进一样,所以不更新栈数据。#5缩进13个字符,所以13被压入栈中。#5、#6和#7的缩进一样,不更新栈数据。#8缩进14个字符,14被压入栈中。#9的缩进4个字符,所以栈中的13和14都会弹出,栈顶值又恢复为4。

    下面是一个错误的案例

    复制代码

         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

    复制代码

    #1、#2和#3处的错误解释的很清楚了。#5的缩进级别在栈中找不到所以出错,#5处的缩进级别是14,比它的上面一行缩进级别18,所以在#5处应该进行出栈处理,但是在栈中找不到14这个级别,所以出错。

    又比如:

    if True:
        print("hello girl")
    else:
        print("hello boy")
     print("end")

    最后一行代码的缩进级别是1,而且比上一行代码的缩进级别小,所以应该出栈处理,但是在出站的时候找不到栈中以前有1的级别,所以报错。修改这个错误,只需要将最后一行的空格去掉就可以。

    欢迎搜索:泉小朵,Python最快入门教程。

    展开全文
  • 在大多数情况下,代码行的缩进告诉 Python 它属于哪一个代码块。但是,这个规则有几个例外。例如在源代码文件中,列表实际上可以跨越几行。这些行的缩进并不重要。Python 知道,没有看到结束方括号,列表就没有结束...
  • python缩进规则的例外

    千次阅读 2017-10-31 18:48:21
    大多数情况下,代码行的缩进告诉python它属于哪一个代码块,但是这个规则有几个例外。 1.列表可以跨越多行 python知道,当没有看到结束方括号时,列表就没有结束,例如: spam = ['apples', 'bananas' '...
  • python缩进规则

    2020-09-06 18:59:38
    代码缩进一般用在函数定义、类的定义以及一 些控制语句中。一 般来说,行尾的“:”表示下一行代码缩进的开始。以下的一段复杂的代码中就在分支语句中使用缩进,即使没有使用括号、分号、大括号等进行语句(块)的分隔...
  • Python缩进规则

    2020-07-14 10:21:13
    并且会在编程过程中自动对缩进进行管理,但是在python中,则是使用缩进来决定代码的范围,有时候缩进需要根据代码来手动调控,此时如果完全依赖python自动缩进,可能会出现问题。例如: //计算数组和,正确格式 def ...
  • python 缩进规则

    千次阅读 2019-05-05 12:28:25
    具有相同缩进代码被视为代码块。缩进Python中具有严格的习惯写法:4个空格,不要使用Tab if语句后接表达式,然后用:表示代码块的开始。
  • Python学习(九)Python缩进规则

    千次阅读 2019-07-23 17:43:11
    其它程序设计语言(如Java、C 语言)采用大括号“{}”分隔代码块不同,Python采用代码缩进和冒号( : )来区分代码块之间的层次。 在 Python 中,对于类定义、函数定义、流程控制语句、异常处理语句等,行尾的冒号和...
  • python代码缩进

    千次阅读 2017-04-29 23:48:28
    在很多代码规范里面也都有要求代码书写按照一定的规则进行换行和代码缩进,但是这些要求只是纯粹是方便人(程序员)来阅读、使用或修改的,对于编译器或者解释器而言,完全是视而不见的。但是对Python解释器而言,每...
  • 关于 python缩进

    2021-05-27 11:23:52
    python 对缩进是敏感的,而大多教程对缩进规则,往往就几句话带过,对于没有其他语言基础的初学者,十分不友好,本文就把python常见的缩进问题做了一些整理。 一、Python缩进长度及缩进字符 常看到一些Python缩进...
  • Python缩进规则(包含快捷键)

    千次阅读 2020-04-16 16:29:52
    和其它程序设计语言(如Java、C 语言)采用大括号“{}”分隔代码块不同,Python采用代码缩进和冒号( : )来区分代码块之间的层次。 在 Python 中,对于类定义、函数定义、流程控制语句、异常处理语句等,行尾的冒号...
  • python缩进是什么

    千次阅读 2019-12-04 01:19:53
    python中缩进是什么 要求严格的代码缩进python语法的一大特色,就像C语言家族(C、C++、Java等等)中的花括号一样重要,...在很多代码规范里面也都有要求代码书写按照一定的规则进行换行和代码缩进,但是这些要...
  • Python缩进

    2019-12-11 18:21:34
    缩进是Python的灵魂 Python是一门独特的语言,它的代码块是通过缩进(Indentation)来标记的(大部分语言都是使用花括号作为... Python的开发者有意让违反了缩进规则的程序不能通过编译,以此让程序员养成良好的编...
  • python讲究的是代码块的一致性,即每一个代码块中的语句缩进都是一样的。 Python中冒号和缩进代表大括号,这样写可以节省很多代码行数,尽可能减少循环的层次和缩进,让代码看起来更简洁,逻辑更清楚。 python严格...
  • Python3缩进对逻辑的影响

    千次阅读 2016-03-15 19:56:11
    前话我很佩服设计Python这门语言的人,因为这门语言的规则让我不得不写出美观的代码Python缩进要求是强制的,因为缩进不对直接影响了代码逻辑。因为python写法相对其他编程语言简化许多,没有花括号让我对代码...
  • 在很多代码规范里面也都有要求代码书写按照一定的规则进行换行和代码缩进,但是这些要求只是纯粹是方便人(程序员)来阅读、使用或修改的,对于编译器或者解释器而言,完全是视而不见的。但是对Python解释器而言,每...
  • 注释(Comments)用来向用户提示或解释某些代码的作用和功能,它可以出现在代码中的任何位置。 Python 支持两种类型的注释,分别是单行注释和多行注释。 Python 单行注释 Python 使用井号#作为单行注释的符号,...
  • python 缩进

    2019-12-13 11:36:56
    因为不同编辑器,处理制表符的方式不同,有些会把它当成一个制表符,有的会将其看成是4个或4个以上的空格,因而会产生源代码中制表符和空格的使用不一的后果,违反了Python缩进规则。当然可以设置编辑器在打入Tab...
  • Python/Pycharm的缩进规则 及快捷键

    千次阅读 2019-03-14 13:22:56
    Python语言是一款对缩进非常敏感的语言,给很多初学者带来了困惑,即便是很有经验的Python程序员,也可能陷入陷阱当中。最常见的情况是tab和空格的混用会导致错误,或者缩进不对,而这是用肉眼无法分别的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 592
精华内容 236
关键字:

python代码缩进规则

python 订阅