python的缩进规则是什么意思_python缩进规则叫什么

python的缩进规则是什么意思_python缩进规则叫什么Python 中的缩进 Indentation 决定了代码的作用域范围 这一点和传统的 c c 有很大的不同 传统的 c c 使用花括号花括号 符决定作用域的范围 python 使用缩进空格来表示作用域的范围 相同缩进行的代码是处于同一范围 每行代码中开头的空格数 whitespace 用于计算该行代码的缩进级别 Indentationl 注意一个 Tab 会被替换为 1 8 个 Space 具

7e6d162096b80d422bc4e7ce42e8769b.jpg

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

下面是一个错误的案例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缩进规则叫什么的详细内容,更多请关注jquery中文网其它相关文章!

本文原创发布jQuery中文网,转载请注明出处,感谢您的尊重!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/232310.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • vector释放内存之swap方法

    相信大家看到swap这个词都一定不会感到陌生,就是简单的元素交换。但swap在C++STL中散发着无穷的魅力。下面将详细的说明泛型算法swap和容器中的swap成员函数的使用!1.泛型算法swa

    2021年12月28日
    44
  • 设备驱动基础学习–platform driver简单实现「建议收藏」

    设备驱动基础学习–platform driver简单实现「建议收藏」设备驱动基础学习–platformdriver简单实现

    2022年7月4日
    22
  • .NET框架体系结构

    刚开始接触.NET很疑惑,看完视频也不是太懂,通过总结和反复,从概括和概念入手,慢慢变得清晰了。这篇博客主要是我对.NET基础知识的了解,算作积累吧。.NET框架体系结构由四个主要部分组成公共语

    2021年12月23日
    55
  • css样式表

    css样式表一、css初识1、概念:css(cascadingstylesheets),通常称为css样式表或层叠样式表(级联样式表)。2、作用:①主要用于设置HTML页面中的文本内容(字体、大小、对齐方

    2022年7月1日
    24
  • java输出日期格式_java时区转换

    java输出日期格式_java时区转换importorg.joda.time.DateTime;importjava.util.Date;publicvoidsetCreatedDate(DatecreatedDate){this.createdDate=createdDate;}publicvoidsetCreatedDate(finalDateTimecreatedDate){this.createdDa…

    2025年8月8日
    1
  • iptables防封_iptables屏蔽ip

    iptables防封_iptables屏蔽ipiptables封掉少量ip处理是没什么问题的,但是当有大量ip攻击的时候性能就跟不上了,iptables是O(N)的性能。而ipset就像一个集合,把需要封闭的ip地址放入这个集合中,ipset是O(1)的性能,用的hash方式所以特别快。ipset的一个优势是集合可以动态的修改,即使ipset的iptables规则目前已经启动,新加的入ipset的ip也生效。一、软件及安装  1…

    2022年9月27日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号