2.9 Python缩进规则(包含快捷键)

news/2024/5/15 1:35:19

Python缩进规则(包含快捷键)

和其它程序设计语言(如 Java、C 语言)采用大括号“{}”分隔代码块不同,Python采用代码缩进和冒号( : )来区分代码块之间的层次。

在 Python 中,对于类定义、函数定义、流程控制语句、异常处理语句等,行尾的冒号和下一行的缩进,表示下一个代码块的开始,而缩进的结束则表示此代码块的结束。

注意,Python 中实现对代码的缩进,可以使用空格或者 Tab 键实现。但无论是手动敲空格,还是使用 Tab 键,通常情况下都是采用 4 个空格长度作为一个缩进量(默认情况下,一个 Tab 键就表示 4 个空格)。

例如,下面这段 Python 代码中(涉及到了目前尚未学到的知识,初学者无需理解代码含义,只需体会代码块的缩进规则即可):

height=float(input("输入身高:")) #输入身高
weight=float(input("输入体重:")) #输入体重
bmi=weight/(height*height)       #计算BMI指数
#判断身材是否合理
if bmi<18.5:#下面 2 行同属于 if 分支语句中包含的代码,因此属于同一作用域print("BMI指数为:"+str(bmi)) #输出BMI指数print("体重过轻")
if bmi>=18.5 and bmi<24.9:print("BMI指数为:"+str(bmi)) #输出BMI指数print("正常范围,注意保持")
if bmi>=24.9 and bmi<29.9:print("BMI指数为:"+str(bmi)) #输出BMI指数print("体重过重")
if bmi>=29.9:print(BMI指数为:"+str(bmi)) #输出BMI指数print("肥胖")

Python 对代码的缩进要求非常严格,同一个级别代码块的缩进量必须一样,否则解释器会报 SyntaxError 异常错误。例如,对上面代码做错误改动,将位于同一作用域中的 2 行代码,它们的缩进量分别设置为 4 个空格和 3 个空格,如下所示:

if bmi<18.5:print("BMI指数为:"+str(bmi)) #输出BMI指数print("体重过轻")

可以看到,第二行代码和第三航代码本来属于同一作用域,但我们手动修改了各自的缩进量,这会导致 SyntaxError 异常错误,如图 1 所示。

img
图 1 缩进不符合规范导致异常

对于 Python 缩进规则,初学者可以这样理解,Python 要求属于同一作用域中的各行代码,它们的缩进量必须一致,但具体缩进量为多少,并不做硬性规定。

IDLE 开发环境对缩进量的设置

在 IDLE 开发环境中,默认是以 4 个空格作为代码的基本缩进单位。不过,这个值是可以手动改变的,在菜单栏中选择Options -> Configure,会弹出如下对话框:

img

如图所示,通过拖动滑块,即可改变默认的代码缩进量,例如拖动至 2,则当你使用 Tab 键设置代码缩进量时,会发现按一次 Tab 键,代码缩进 2 个空格的长度。

如拖动至 2,则当你使用 Tab 键设置代码缩进量时,会发现按一次 Tab 键,代码缩进 2 个空格的长度。

不仅如此,在使用 IDLE 开发环境编写 Python 代码时,如果想通过设置多行代码的缩进量,可以使用 Ctrl+]Ctrl+[ 快捷键,此快捷键可以使所选中代码快速缩进(或反缩进)。


http://www.mrgr.cn/p/40140434

相关文章

DOM(文档对象模型):理解网页结构与内容操作的关键技术

DOM(文档对象模型)定义了一种访问和操作文档的标准。它是一个平台和语言无关的接口,允许程序和脚本动态访问和更新文档的内容、结构和样式。HTML DOM用于操作HTML文档,而XML DOM用于操作XML文档。HTML DOM示例 通过ID获取并修改HTML元素的值: <!DOCTYPE html> <h…

运算符,分支了解

1. 关于字典类型 # {"key":"value"} # key : 可以是任意类型,但是不建议放,不可变数据类型,字符串2. 元组类型(tuple) 2.1 作用元组(tuple)是一种不可变的序列类型,类似于列表,用于存储多个有序元素。 元组与列表的主要区别在于元组的元素不能被修…

IDEA重启

IDEA版本20231.2File –> Invalidate Caches...  针对性选择Invalidate and Restart :清空缓存并重启。

m基于yolov2网络的火焰烟雾检测系统matlab仿真,包含GUI界面

1.算法仿真效果 matlab2022a仿真结果如下: 2.算法涉及理论知识概要YOLOv2 是一个实时目标检测系统,由 Joseph Redmon 和 Ali Farhadi 在 2016 年提出。它通过单个神经网络对输入图像进行一次前向传播就能预测出图像中的多个目标及其位置。在火焰烟雾检测任务中,YOLOv2 能够快…

网络七层模型之物理层:理解网络通信的架构(一)

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

FFmpeg拉取RTSP流并定时生成10秒短视频

生成效果: 视频时长为10秒 生成格式为FLV 输出日志: 完整实现代码如下: 需要在Mac和终端先安装FFmpeg brew install ffmpeg CMake文件配置: cmake_minimum_required(VERSION 3.27) project(ffmpeg_open_stream) set(CMAKE_CXX_STANDARD 17)#头文件包目录 include_director…

每个程序员都应该了解的内存知识(一): 南桥北桥内存

南桥&北桥&内存 结构 每个程序员都应该了解的内存知识.pdf - p5 - 每个程序员都应该了解的内存知识-P5-20240327103419 ​​ 功能 每个程序员都应该了解的内存知识.pdf - p5 - 每个程序员都应该了解的内存知识-P5-20240327104347 ​​ 北桥 主要是连接CPU以及RAM以及南…

每个程序员都应该了解的内存知识(二): CPU Cache

CPU Cache 架构 每个程序员都应该了解的内存知识.pdf - p22 - 每个程序员都应该了解的内存知识-P22-20240328112647 ​​ 每个程序员都应该了解的内存知识.pdf - p23 - 每个程序员都应该了解的内存知识-P23-20240328112807 ​​ 每个程序员都应该了解的内存知识.pdf - p23 - 每…

flask Python:钩子函数shell_context_processor(上下文处理器)的使用

一、请求上下文和应用上下文 什么是请求上下文和应用上下文&#xff1f;&#xff0c;在这里&#xff0c;了解到了一个词叫上下文处理器&#xff0c;通俗理解就是在一个请求中定义全局变量的。 每次启动Flask shell都需要导入数据库实例和模型&#xff0c;感觉繁琐又重复&…

Windows iscsicli 命令 参数

Windows iscsicli 命令 start iscsicpliscsicli /? Microsoft iSCSI Initiator版本10.0构建20348 iscsicli iscsicli AddTarget <目标名称> <目标别名> <目标门户地址> <TargetPortalSocket> <目标标志> &…

iscsicli 命令 参数

iscsicli 命令 start iscsicpliscsicli /? Microsoft iSCSI Initiator版本10.0构建20348 iscsicli iscsicli AddTarget <目标名称> <目标别名> <目标门户地址> <TargetPortalSocket> <目标标志> <Persi…

基于Java实现宠物领养救助交流平台设计和实现

基于Java实现宠物领养救助交流平台设计和实现 博主介绍&#xff1a;多年java开发经验&#xff0c;专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 欢迎点赞 收藏 ⭐留言 文末获取源码联…

(一)甘特图部分

目前甘特图样式 目前更新到支持显示订单完成进度,支持下钻四级显示信息。 重要代码 (一)颜色部分1 //进度条颜色2 gantt.templates.task_text = function (start, end, task) {3 let parentState = getColorForTask1(task, end);4 let sonSta…

IDEA 上传 git 项目

1. 创建项目:菜单栏 找到 VCS ,创建 git 仓库,此时代码变红了 2. 右击项目 找到 GIT --> Add,代码绿了 3. 存于本地:右击项目 找到 Git --> Commit Directory... 4. 此时存在本地git,编辑后点击 Commit出错了,不重要。commit后代码白了。5. 拉取代码,右击项目…

基于unbantu的nginx的配置

目录 前言: 1.安装nginx并进行测试 1.1使用nginx -v 命令查看版本 1.2开启服务 查看端口 1.3测试 2.nginx的静态资源访问配置 2.1创建静态资源存放的目录 2.2写入目录中测试文件对应的内容 2.3修改配置文件 2.4 测试 3.虚拟主机配置 3.1创建目录 3.2写入测试…

JavaEE 初阶篇-深入了解多线程等待与多线程状态

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 线程等待 1.1 线程等待 - join() 方法 1.1.1 main 线程中等待多个线程 1.1.2 main 线程等待 t2 线程且t2 线程等待 t1 线程 1.1.3 其他线程阻塞等待 main 线程 1.…

SpringBoot项目接入Nacos的实现步骤

前言 项目中没有使用nacos官方提供的方式使用SpringBoot的集成方式来进行集成,而是使用了Alibaba Spring Cloud的依赖包进行集成。 原因是因为官网提供的SpringBoot集成方式中,同时使用配置中心和服务发现功能,会使得服务发现功能配置的部分属性冲突不生效。最直接的就是配置…

移动平台实时动态多点光源方案:Cluster Light

一、什么是 Cluster Light&#xff0c;它具体如何实现多点光源效果&#xff1f; 对于移动设备&#xff0c;如何支持场景中大量的实时点光源一直以来都是比较棘手的问题&#xff0c;因此对于过去&#xff0c;往往有如下两种常规方案&#xff1a; 静态点光源直接烘焙&#xff0…

UE4 C++ Widget的NativeConstruct 与 NativePreConstruct

构造函数 由于Widget是由UE的反射系统创建的,其生命周期由UE引擎管理,所以并不存在构造函数,UE为Widget类定义了两个虚函数NativeConstruct 与 NativePreConstruct来充当构造函数的作用。而这两个函数的调用都必须在Widget被实例化之后才能进行调用 如何在Widget中获取角色 …