详解Python中的缩进和选择

缩进

Python最具特色的是用缩进来标明成块的代码。我下面以if选择结构来举例。if后面跟随条件,如果条件成立,则执行归属于if的一个代码块。

先看C语言的表达方式(注意,这是C,不是Python!)

if ( i > 0 )
{x = 1;y = 2;
}

如果i > 0的话,我们将进行括号中所包括的两个赋值操作。括号中包含的就是块操作,它隶属于if。

在Python中,同样的目的,这段话是这样的

if i > 0:x = 1y = 2

在Python中, 去掉了i > 0周围的括号,去除了每个语句句尾的分号,表示块的花括号也消失了。

多出来了if ...之后的:(冒号), 还有就是x = 1 和 y =2前面有四个空格的缩进。通过缩进,Python识别出这两个语句是隶属于if。

Python这样设计的理由纯粹是为了程序好看。

if语句

写一个完整的程序,命名为ifDemo.py。这个程序用于实现if结构。

i = 1
x = 1
if i > 0:x = x+1
print x

$python ifDemo.py  # 运行

程序运行到if的时候,条件为True,因此执行x = x+1,。

print x语句没有缩进,那么就是if之外。

如果将第一句改成i = -1,那么if遇到假值 (False), x = x+1隶属于if, 这一句跳过。 print x没有缩进,是if之外,不跳过,继续执行。

这种以四个空格的缩进来表示隶属关系的书写方式,以后还会看到。强制缩进增强了程序的可读性。

复杂一些的if选择:

i = 1
if i > 0:print 'positive i'i = i + 1
elif i == 0:print 'i is 0'i = i * 10
else:print 'negative i'i = i - 1
print 'new i:',i

这里有三个块,分别属于if, elif, else引领。

Python检测条件,如果发现if的条件为假,那么跳过后面紧跟的块,检测下一个elif的条件; 如果还是假,那么执行else块。

通过上面的结构将程序分出三个分支。程序根据条件,只执行三个分支中的一个。

整个if可以放在另一个if语句中,也就是if结构的嵌套使用:

i  = 5
if i > 1:print 'i bigger than 1'print 'good'if i > 2:print 'i bigger than 2'print 'even better'

if i > 2 后面的块相对于该if缩进了四个空格,以表明其隶属于该if,而不是外层的if。

总结

if语句之后的冒号

以四个空格的缩进来表示隶属关系, Python中不能随意缩进。

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

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

相关文章

AI论文速读 | UniST:提示赋能通用模型用于城市时空预测

本文是时空领域的统一模型——UniST,无独有偶,时序有个统一模型新工作——UniTS,感兴趣的读者也可以阅读今天发布的另外一条。 论文标题:UniST: A Prompt-Empowered Universal Model for Urban Spatio-Temporal Prediction 作者&…

Go json Marshal UnMarshal 的一点小 trick

在编写 Web Service 等涉及数据序列化和反序列化的场景,对于 JSON 类型的数据,在 Go 中我们经常会使用到 encoding/json Package。最近微有所感,小水一篇 omitempty JSON 数据的 UnMarshal 我们经常会配合 Struct Tags 使用,让 …

2024.3.17 训练记录(19)

写一下下午校赛的部分题目 文章目录 ATC ABC150D Semi Common MultipleATC ABC144E GluttonyATC dp题单Q Flowers ATC ABC150D Semi Common Multiple 题目链接 下午不知道怎么糊出来的做法,可以转换成x一定要是a/2的奇数倍,所以输入a的时候先把都除以2…

CornerStone.js之点数据获取相关函数

向后端导出点的坐标数据:由于piexlData是Float32Arrat数据类型,传递给后端 会报错,于是将其转换为二维数组,然后传递给后端即可,后端将其写入txt文件中 二维数组表示是512*512的一个数组,元素值只有0和1

AI基础知识(3)--神经网络,支持向量机,贝叶斯分类器

1.什么是误差逆传播算法(error BackPropagation,简称BP)? 是一种神经网络学习算法。BP是一个迭代学习算法,在迭代的每一轮使用广义的感知机学习规则对参数进行更新估计。基于梯度下降(gradient descent&am…

linux学习之Socket

目录 编写socket-udp 第一步,编写套接字 第二步,绑定端口号 第三步,启动服务器,读取数据 第四步,接收消息并发回信息给对方 编写socket-Tcp 第一步,编写套接字 第二步,绑定端口号 第三步…

等保测评的知识

结合自己所学的知识和网络上的一些知识做个小总结。 目录 一、概念: 二、等级划分: 三、技术要求: 四、管理要求: 五、等保测评实施过程: 六、典型的网络架构: 一、概念: 全称为信息安全等级保…

【涨薪技术】0到1学会性能测试 —— 参数化关联

前言 上一次推文我们分享了性能测试工作原理、事务、检查点!今天给大家带来性能测试参数化,检查点知识!后续文章都会系统分享干货,带大家从0到1学会性能测试,另外还有教程等同步资料,文末免费获取~ 01、性…

【基础】倒水 c++

描述 在一个桌子上摆放了n个杯子,每个杯子中有一定量的水。小A同学负责向杯子中倒水,他总共倒了k次,每次会向从第L个杯子到第R个杯子中添加P毫升的水(注意:水只可能增加,不可能减少)。 请问小A…

编译libkml-1.3.0报错:minizip/crypt.h:没有那个文件或目录

完整的报错信息如下&#xff1a;/root/libkml-1.3.0/src/kml/base/contrib/minizip/unzip.c:183:10: 致命错误&#xff1a;minizip/crypt.h&#xff1a;没有那个文件或目录 #include <minizip/crypt.h> ^~~~~~~~~~~~~~~~~ 编译中断。 原因分析:yum install m…

【R3F】13. 碰撞反馈 impulse

点击反馈 注册点击事件 import React, { useRef } from react import { Debug, Physics, RigidBody } from "@react-three/rapier" const cube = useRef() const cubeJump = () => {cube.current.applyImpulse({ x: 0, y: 2, z: 0 })cube.current.applyTorqueImpu…

c++希尔排序

希尔排序&#xff08;Shell Sort&#xff09;是一种插入排序的改进版本&#xff0c;它是非稳定排序算法。希尔排序的基本思想是将待排序的元素分成若干个小组&#xff0c;对每组进行插入排序&#xff0c;然后逐步减小增量&#xff0c;继续按组进行插入排序操作&#xff0c;直至…

2024.03.18作业

封装一个动物的基类&#xff0c;类中有私有成员&#xff1a;姓名&#xff0c;颜色&#xff0c;指针成员年纪 再封装一个狗类&#xff0c;共有继承于动物类&#xff0c;自己拓展的私有成员有&#xff1a;指针成员腿的个数&#xff0c;共有成员函数&#xff1a;叫 要求&#xf…

PyTorch学习笔记之激活函数篇(四)

4、 Leaky ReLU 函数 4.1 公式 Leaky ReLU函数的公式&#xff1a; f ( x ) { x , x > 0 λ x , x < 0 , λ ∈ ( 0 , 1 ) f(x) \begin{cases} x&,x>0 \\ \lambda x&,x<0,\lambda \in(0,1) \end{cases} f(x){xλx​,x>0,x<0,λ∈(0,1)​ Leakly R…

JavaScript做一个贪吃蛇小游戏,无需网络直接玩。

用JavaScript做一个贪吃蛇小游戏&#xff0c;无需网络 > 打开即可玩。 html代码&#xff1a; <!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8"><title>Title</title><style>#game{width: 344p…

Mysql 死锁案例4-delete 相邻记录导致死锁

死锁复现 CREATE TABLE t (id int(11) NOT NULL,c int(11) DEFAULT NULL,d int(11) DEFAULT NULL,PRIMARY KEY (id),KEY c (c) ) ENGINEInnoDB DEFAULT CHARSETutf8;/*Data for the table t */insert into t(id,c,d) values (0,0,0),(5,5,5),(10,10,10),(15,15,15) 事务1事…

第二十三章 Web 网关的配置基础知识

文章目录 第二十三章 Web 网关的配置基础知识Web 网关配置和日志文件自动路由到IRIS 的文件类型从 IRIS 提供静态文件表示字符编码 启用服务文件选项配置 Web 服务器以允许 IRIS 提供静态文件从 Web 服务器提供静态文件在高可用性解决方案的硬件负载均衡器上启用粘性会话启用脚…

“先干后看”式循环

题目&#xff1a;计算 &#xff0c;直到最后一项小于 。 注意题目要求&#xff1a;计算到最后一项小于 。也就是这一项是要参与到计算中的&#xff0c;计算完这一项才能触发循环停止条件。 这种先运算后判断的情况很对do-while循环的胃口。 do就是做嘛&#xff0c;while就是…

代码随想录算法训练营第二十七天(二十六填休息) | 39. 组合总和、40、组合总和 II、131. 分割回文串

代码随想录算法训练营第二十七天&#xff08;二十六填休息&#xff09; | 39. 组合总和、40、组合总和 II、131. 分割回文串 39. 组合总和题目解法 40、组合总和 II题目解法 131. 分割回文串题目解法substr()用法 感悟 39. 组合总和 题目 解法 初始解法&#xff1a;出现重复组…

Faust勒索病毒:了解最新变种[nicetomeetyou@onionmail.org].faust,以及如何保护您的数据

导言&#xff1a; 在一个快节奏的数字世界中&#xff0c;我们经常忽视数据安全的重要性。然而&#xff0c;最新的勒索病毒——[nicetomeetyouonionmail.org].faust、[support2022cock.li].faust、[tsai.shenmailfence.com].faust 、[Encrypteddmailfence.com].faust、[Deciphe…