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)
上一篇 2025年10月19日 下午2:01
下一篇 2025年10月19日 下午2:22


相关推荐

  • 设计师们“破防”了!即梦 AI 3.0 更新后,中文绘图效果太惊人!(多图实测)

    设计师们“破防”了!即梦 AI 3.0 更新后,中文绘图效果太惊人!(多图实测)

    2026年3月12日
    2
  • kali2020 vnc安装_kali配置x11vnc

    kali2020 vnc安装_kali配置x11vnclinux 一般是不需要要用远程桌面连接 总有特殊的需求 就记录下配置的过程而已 全程使用 root 用户权限 非 root 用户权限 命令前加 sudo 1 安装 x11vncapt getinstallx1 y 注意 官方源可能安装失败 修改成国内源 vi etc apt source listdebhttp mirrors ustc edu cn kalikali rollingm

    2026年3月17日
    2
  • Python绘制地图神器folium介绍及安装使用教程

    Python绘制地图神器folium介绍及安装使用教程想要绘制更精美的可视化地图?想在地图上自由的设置各种参数?想获得灵活的交互体验?今天它就来了,Python绘制地图神器folium,上手直接开大!

    2025年7月30日
    6
  • 激光SLAM算法学习(三)——3D激光SLAM

    激光SLAM算法学习(三)——3D激光SLAM3D激光SLAM1、3D激光SLAM的介绍3D激光SLAM的输入:IMU数据3D激光雷达数据里程计数据3D激光SLAM的输出:3D点云地图机器人的轨迹orPoseGraph2、3D激光SLAM的发展3D激光SLAM的帧间匹配方法——点云配准算法Point-to-PlaneICPFeature-basedMethod3D激光SLAM的回环检测方法Scan-to…

    2022年8月23日
    8
  • 中文按字母排序_怎么按首字母顺序排

    中文按字母排序_怎么按首字母顺序排        项目中用到前端排序,自己写了一个实现,给大家分享一下。      存在的问题:很多时候是用汉字的首拼来比较,但汉字转拼音在前端实现是个问题,主要表现在两个地方1、字符库里的数据量没有覆盖所有汉字,2、多音字问题(注:这里都是说简体汉字)。      实现思路:1、从网上找了一个汉字转拼音的库,能转大部分汉字(多音字也没处理);2、写一个字符比较的函数;3、调用Array里的…

    2022年10月12日
    5
  • eclipse安装教程(win10版本,很全的)

    eclipse安装教程(win10版本,很全的)第一步:下载JDK。先给上下载链接:http://www.oracle.com/technetwork/java/javase/downloads/index.html之后根据自己的系统选择,x86代表32位,x64代表64位。点击相应的jdk下载。同意之后下载。(记住下载到哪,打开之后一路同意安装即可)记住你把Jdk安装到哪里,文件路径不要有中文,有时会无法识别,我是将jdk安装到D盘java文件夹下第二步:java环境变量配置。(这是第一种方法,还有第二种设置JAVA_HOME,个人推

    2022年6月13日
    68

发表回复

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

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