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。

    最后

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

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

相关推荐
飞天小蜈蚣20 分钟前
http协议和django初识
python
路边草随风22 分钟前
langchain agent动态变更系统prompt
人工智能·python·langchain·prompt
Mr.Jessy4 小时前
JavaScript高级:构造函数与原型
开发语言·前端·javascript·学习·ecmascript
哥本哈士奇(aspnetx)7 小时前
Streamlit + LangChain 1.0 简单实现智能问答前后端
python·大模型
我一定会有钱7 小时前
斐波纳契数列、end关键字
python
玄斎8 小时前
MySQL 单表操作通关指南:建库 / 建表 / 插入 / 增删改查
运维·服务器·数据库·学习·程序人生·mysql·oracle
小鸡吃米…8 小时前
Python 列表
开发语言·python
星依网络9 小时前
yolov5实现游戏图像识别与后续辅助功能
python·开源·游戏程序·骨骼绑定
大佐不会说日语~10 小时前
Spring AI Alibaba 的 ChatClient 工具注册与 Function Calling 实践
人工智能·spring boot·python·spring·封装·spring ai
2501_9216494910 小时前
如何获取美股实时行情:Python 量化交易指南
开发语言·后端·python·websocket·金融