Python学习笔记9:入门知识(九)

缩进

什么是缩进?

缩进,简单的理解为本行的首字符相比上一行的首字符位置相对靠后。目前笔者接触的编程语言缩进一般是4字符,直接可以按tab键就行。

为什么突然讲缩进?

Python这门语言,是依靠缩进来判断当前行与上一行的关系。也就是说,在某些代码块里面,你必须依靠缩进来让代码整洁明了,同时你也需要根据缩进来解读代码。

虽然我本身没学过Python,但是我有学习其他编程语言的基础,所以理解接收起来快一点。在我看Python crash course的时候,书中也提到了缩进的注意事项,所以在这边再单独讲一下缩进。

什么时候用缩进?

通常来说,当你使用流程语句,控制语句,循环语句,定义函数,定义类信息时,会需要使用缩进。除了这些一般情况下都不需要使用缩进。

当你的某一行代码,不需要在它上一个代码块中运行时,你就取消一个缩进,保持与上一个代码块相同的缩进量。

我用代码演示一下。

  1. 只有一级嵌套

  2. 假如我在for循环后的下一行(图146行)不缩进,会怎么样呢?

    这里会运行失败并且报错,并且你的IDE会直接标红提示。

  3. 我们已经知道了for循环后的第一行(图148行)需要缩进,并且我们在循环里面要做两件事情,那么第二行不缩进的话,第二件事会在循环里面做吗?

    你会发现,你本应在循环里面做的第二件事,最终并没有做五次,而是在循环结束后只做了一次。这说明Python根据你代码中155行中的缩进量判断,你这个语句不属于循环语句中的操作,所以放到了循环语句的同级别执行。

  4. 假如我们的语句里面又嵌套语句怎么办?

    大家跟着思路来阅读这段代码。

    首先阅读看到,代码嵌套了两层for循环,那么这个代码的整体的层级就是3。因为你代码本身为一级,代码中流程,控制,循环等语句,代码层级加1。那么本段代码的层级就等于:1(self) + 1(name_list) + 1(name) = 3。注意同级别的这些语句,不会增加代码层级。比如你在代码163行的位置插入一个for循环,本地代码的层级还是不变。

    其次阅读发现第一层里面,做了三件事:打印明月望秋思 ,执行一个for循环代码块 ,打印学习Python。这三个操作,因为是self中的操作,我们设定这三个操作为1_1,1_2,1_3。这三个操作的代码没有缩进。

    再次阅读,发现操作1_2里面又做了三件事:打印name ,执行一个for循环代码块,打印** name do something**。同样的,这三个操作命名为1_2_1,1_2_2,1_2_3。这三个操作的代码有一个缩进。

    再次阅读,发现操作1_2_2里面又做了两件事:打印word ,打印word do something。同样的,这两个操作命名为1_2_2_1,1_2_2_2。这两个操作的代码有两个缩进。

    那么我们可以解读出哪些信息呢?

    第一:代码的层级,只和最大的那一层的层级有关,和数量无关。

    第二:代码的缩进量与代码层级有关,缩进量为代码层级减一。

    在我们读代码的时候,就可以根据第二条,拆分代码,拆分出不同的级,再按级分析代码。省的看到一大片代码无处下手。

    在我们写代码的时候,两条结合。你写的当前代码是多少级的代码,就要设置好级别减一的缩进量。你当前这行的代码想在哪一级别执行,你就按级别减一设置缩进量。当然这些得到前提是要符合代码的规范性和程序的逻辑性,不然最后写出无法运行,无法得到想要的运行结果的程序那不是很尴尬。
    个人总结,大佬勿cue。

    最后

    今天公司团建,有点肝不动了。明天在家直接肝两篇,并且终结入门章。

    点赞收藏关注不迷路,感谢大家!!!

相关推荐
Miqiuha7 分钟前
lock_guard和unique_lock学习总结
java·数据库·学习
一 乐1 小时前
学籍管理平台|在线学籍管理平台系统|基于Springboot+VUE的在线学籍管理平台系统设计与实现(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·学习
PythonFun2 小时前
Python批量下载PPT模块并实现自动解压
开发语言·python·powerpoint
加油,旭杏2 小时前
【中间件学习】fastCG介绍和使用
学习·nginx·fastcgi
limengshi1383922 小时前
通信工程学习:什么是TFTP简单文件传输协议
网络·网络协议·学习·信息与通信
炼丹师小米3 小时前
Ubuntu24.04.1系统下VideoMamba环境配置
python·环境配置·videomamba
GFCGUO3 小时前
ubuntu18.04运行OpenPCDet出现的问题
linux·python·学习·ubuntu·conda·pip
985小水博一枚呀4 小时前
【深度学习基础模型】神经图灵机(Neural Turing Machines, NTM)详细理解并附实现代码。
人工智能·python·rnn·深度学习·lstm·ntm
丝丝不是土豆丝4 小时前
学习 CSS 新的属性 conic-gradient 实现环形进度条
学习
S hh4 小时前
【Linux】进程地址空间
java·linux·运维·服务器·学习