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。

    最后

    今天公司团建,有点肝不动了。明天在家直接肝两篇,并且终结入门章。
    点赞收藏关注不迷路,感谢大家!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/30311.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

展览中的投影墙互动有哪些新玩法?

随着投影技术的飞速发展,它已经突破了传统场地、面积和形式的限制,为各类展示场景带来了前所未有的新颖投影形式。这些投影案例中,不乏一些在不规则墙面、独特物品外观上精彩呈现的典范。这些结合投影技术与互动技术的展示形式,不…

【类脑计算】突触可塑性模型之Hebbian学习规则和STDP

1 引言 突触可塑性 (Synaptic plasticity)指经验能够修改神经回路功能的能力。特指基于活动修改突触传递强度的能力,是大脑适应新信息的主要调查机制。分为短期和长期突触可塑性,分别作用于不同时间尺度,对感官刺激的短期适应和长期行为改变…

极具吸引力的小程序 UI 风格

极具吸引力的小程序 UI 风格

深圳中小企业融资攻略,贷款方法大盘点!

中小企业融资这事,可不是一个简单的事情。资金对中小企业来说,就像血液对人体一样重要。企业发展离不开资金支持,特别是在今年这个环境下,政策对中小企业还挺友好的。今天讲解一下中小微企业常用的几种贷款方法。希望能让大家更明…

NavicatforMySQL11.0软件下载-NavicatMySQL11最新版下载附件详细安装步骤

我们必须承认Navicat for MySQL 支援 Unicode,以及本地或远程 MySQL 服务器多连线,使用者可浏览数据库、建立和删除数据库、编辑数据、建立或执行 SQL queries、管理使用者权限(安全设定)、将数据库备份/复原、汇入/汇出数据&…

开源打通版/标准版v4电商商城系统小程序发布之后无法生成海报问题

小程序产品分销二维码生成不了 开发者工具可以生成海报,但是发布之后无法生成 1.在开发者工具中,将不校验合法域名关闭 2.点击生成海报,查看console 3.将域名填写到微信公众平台小程序的download合法域名中 网址https://mp.weixin.qq.com/

Swift开发——弱占用

自动引用计数(Automatic Reference Counting,ARC),是Swift语言管理类的实例的方式。当创建某个类的一个新实例后,ARC自动为新实例分配内存空间,用于保存实例的类型和存储属性,当将该实例赋给常量、变量或其他实例的属性…

npm install 安装不成功,node-sass缺失,提示python环境缺失的解决办法

npm install 安装不成功的原因 是因为缺少python的环境 解决方法: 1、去官网下载 https://www.python.org/downloads/release,注意安装3.6版本以上还是会有问题,建议安装3.6版本以上的,我选择安装的是3.9.6,对应的下载…

京东h5st4.73

声明 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! lianxi a15018601872 …

客观评价,可道云teamOS搭建的企业网盘,如Windows本地电脑一般的使用体验真的蛮不错

不管是企业网盘还是私有网盘,简单易用一直是我比较在意的。快速能上手使用,甚至不需要习惯一套新的操作逻辑,代表着不需要学习适应,能够迅速投入正常使用。 在这个过程中,可道云teamos以其Windows电脑般的流畅体验&am…

【AI】通义千问使用指南:让你快速上手,成为问题解决高手!

大家好,我是木头左。 近日,继文心一言和讯飞星火之后,阿里虽迟但到,直接宣布开源两款“通义千问”大模型。作为国内首个开源且可商用的人工智能大模型,这会给我们带来哪些变化呢? 如何申请阿里通义千问&am…

铁路定向声波冲击波智能驱鸟器

对于铁路系统来说,鸟类活动会带来潜在的安全隐患。铁路沿线的接触网、电杆等设备,是鸟类筑巢的理想场所,但鸟类在筑巢过程中,常常使用的树枝、铁丝等杂物,一旦掉落在接触网设备上,就可能造成带电体与接地侧…

k8s上尝试滚动更新和回滚

滚动更新和回滚 实验目标: 学习如何进行应用的滚动更新和回滚操作。 实验步骤: 创建一个 Deployment。更新 Deployment 的镜像版本,观察滚动更新过程。回滚到之前的版本,验证回滚操作。 今天呢,我们继续来进行我们k…

newtonsoft.json动态读取json以及动态生成

问题 同一个接口返回不同类型的json&#xff0c;json结构相差比较大转换为C#对象不太合适&#xff0c;想着是否可以动态解析。 newtonsoft类 JTokenType类型 namespace Newtonsoft.Json.Linq {/// <summary>/// Specifies the type of token./// </summary>publ…

聊聊缓存如何进行测试的

为了提升数据访问速度&#xff0c;减少后端服务如数据库的负载&#xff0c;提高系统整体性能&#xff0c;在系统中通常会使用缓存中间件&#xff0c;以下是缓存中间的类型&#xff1a; 缓存中间件类型&#xff1a; 通用内存缓存&#xff1a; Memcached&#xff1a;这是一个高性…

YOLOv10改进 | 主干篇 | YOLOv10引入华为VanillaNet替换Backbone

1. VanillaNet介绍 1.1 摘要: 基础模型的核心是“越多越好”的理念,计算机视觉和自然语言处理领域取得的惊人成功就是例证。 然而,优化的挑战和变压器模型固有的复杂性要求范式向简单性转变。 在这项研究中,我们介绍了 VanillaNet,一种设计优雅的神经网络架构。 通过避免…

图片的dpi分辨率数值能改吗?在线改图片分辨率的方法及步骤

图片分辨率修改是怎么操作的&#xff1f;在使用图片的时候&#xff0c;在很多的情况下需要修改图片分辨率api的数值后才可以正常使用&#xff0c;那么修改图片dpi具体该怎么操作呢&#xff0c;相信有很多小伙伴对于这个问题的处理方法都比较困扰&#xff0c;下面就让小编来给大…

插接件焊盘设计

插件孔的标准孔径尺寸&#xff1a;0.60mm(23.6mil)&#xff0c;0.70mm(27.6mil)&#xff0c;0.80mm(31.5mil)&#xff0c;0.90mm(35.4mil)&#xff0c;1.0mm(39.4mil) 插件元器件引线(圆柱形)直径与插件孔直径D之差应为0.40mm(16mil)&#xff5e;0.60mm(24mil)&#xff0c;即插…

SambaLingo——教会大模型新语言

在当今数字化时代&#xff0c;语言不仅是沟通的桥梁&#xff0c;也是信息和知识传递的核心。尽管大模型&#xff08;LLMs&#xff09;在处理英语等主流语言方面取得了显著进展&#xff0c;但它们在理解和生成其他语言内容方面的能力却参差不齐。这种不平衡限制了技术在全球范围…

【云原生|K8S系列】如何创建Kubernetes job和Cronjobs 入门指南

本kubernetes教程解释了如何创建kubernetes作业和cronjobs&#xff0c;以及它的基础知识、用例和一些提示和技巧。 什么是Kubernetes Job? Kubernetes job和cronjob是Kubernetes对象&#xff0c;主要用于短期和批处理工作负载。 kubernetes作业对象基本上部署了一个pod&…