Python流程控制语句的深入讲解


Posted in Python onJune 15, 2020

1.程序结构

计算机在解决问题时,分别是顺序执行所有语句、选择执行部分语句、循环执行部分语句,分别是:顺序结构、选择结构、循环结构。如下图:

Python流程控制语句的深入讲解

2.选择语句

2.1最简单的if语句

Python使用保留字if来组成选择语句,其格式如下:

if 表达式:
 代码块

表达式可以是一个单纯的布尔值或者变量,也可以是比较表达式或者逻辑表达式,如果表达式值为真,则执行“代码块”;如果值为假,就跳过“代码块”,执行后面语句,如图

Python流程控制语句的深入讲解

注:1.在Python中,当表达式的值为非零的数或者非空的字符串时,if语句也认为是条件成立(即为真值)。

··

  2.使用if语句时,如果只有一条语句,那么语句块可以直接写到冒号“:”的右侧。但为了代码可读性不建议这么做。

3.常见错误: 

1.if语句后面未加冒号
number = 3
if number == 3 #后面未加冒号,正确的是结尾处添加英文半角的冒号:if number == 3:
 print(number)
2.使用if语句时,如果在符合条件时,需要执行多个语句,一定要记得按照逻辑顺序进行代码缩进,否则程序的本意会有变化,但程序不会报错,且bug不容易发现。
代码1:
number = 3
if number == 3:
print(number)
print('这个是5')
代码2:
number = 3
if number == 3:

print(number)

print('这个是5'

2.2.if …… else 语句

Python中提供 if …else 语句来解决两个选择问题,其格式如下:

if 表达式:
 语句块1
else:
 语句块2

使用 if …else 语句时,表达式可以是一个单纯的布尔值或者变量,也可以是比较表达式或者逻辑表达式,如果表达式值为真,则执行“代码块”;如果值为假,执行else后面的代码块。如图所示:

Python流程控制语句的深入讲解

技巧:

if…else额语句可以使用条件表达式进行简化,如下:
a = 5
if a > 0:
 b = a
else:
 b = -a
print(b)

简化:
a = 5
b = a if a > 0 else -a
print(b)

注:1. 在使用else 语句时,else一定不可以单独使用,它必须和保留字if一起搭配使用。

2.程序中使用if…else 语句时,如果出现多个if 语句多余else语句的情况,那么该else语句将会根据确定该else 语句属于哪个if语句。

2.3.if…elif…else语句

在开发程序时遇到多选一的情况,则可以使用if …elif…else语句,具体情况如下:

if 表达式1:
 语句块1
elif 表达式2:
 语句块2
elif 表达式3:
 语句块3
…
else:
 语句块n

使用 if …elif…else 语句时,表达式可以是一个单纯的布尔值或者变量,也可以是比较表达式或者逻辑表达式,如果表达式值为真,则执行语句;如果值为假,则跳过该执行语句,进行下一个elif判断,只有表达式全部为假的情况下,执行else后面的代码块。如图所示:

Python流程控制语句的深入讲解

注:1. if 和 elif 都需要判断表达式的真假,而 else 则不需要判断;另外 elif 和 elif 都需要跟 if 一起使用,不能单独使用。

2. 使用if语句时尽量避免遵循以下原则:

(1).当使用布尔类型的变量作为判断条件时,假设布尔类型变量为flag,较为规范格式;
if flag: #表示为真
if not flag #表示为假
不符合规范格式:
if flag == True:
if flag == False:
(2).使用 " if 1 == a: " 这样的书写格式可以防止错写成 " if a = 1: "这种形式,从而避免出错

2.4 if 语句的嵌套

前面已经介绍了3种形式的 if 语句,这三种都可以进行相互嵌套:

(1) . 在最简单的if语句中嵌套 if……else语句,形式如下:

if 表达式1:
 if 表达式2:
 语句块1
 else:
 语句块2

(2). 在if……else中嵌套if……else语句,形式如下:

if 表达式1:
 if 表达式2:
 语句块1
 else:
 语句块2
else:
 if 表达式3:
 语句块3
 else:
 语句块4

注:if 选择语句可以有多种嵌套方式,开发时可以可以根据自身的需要进行选择合适的嵌套方式,但一定要严格控制好不同级别代码的缩进量。

3.条件表达式

在程序开发过程中,经常会根据表达式的结果,有条件的进行赋值,例如返回最大值:

a = 6
b = 3
if a > b:
 c = a
else:
 c = b

针对以上代码,使用条件表达式进行简化,如下:

a = 6
b = 3
c = a if a > b else b

4.循环语句

4.1 while 循环

while循环是通过一个条件来控制是否要继续反复执行循环体(循环体是指一组被重复执行的语句)中的语句。

while 条件表达式: 循环体

当条件表达式的返回值为真时,则执行循环体中的语句,执行完毕后,重新判断条件表达式的返回值,直到表达式返回的结果为假是退出循环体。

Python流程控制语句的深入讲解

注:在使用while循环语句时,一定不要忘记添加将循环条件改变为Flase的代码,否则,将产生死循环。但开发中也离不开死循环,可根据情况进行编写。

4.2. for循环

for 循环是一个依次重复执行的循环,通常适用于枚举、遍历序列和对象中的元素。语法如下:

for 迭代变量 in 可迭代对象:
 循环体

迭代变量用于保存读除的值,对象为遍历或迭代的对象,该对象可以是任何有序的序列对象,如字符串,列表,元组等,循环体为一组被重复执行的语句。

Python流程控制语句的深入讲解

for循环语句可以最基本的应用就是进行数值循环和遍历字符串。还可以进行遍历列表、元组、集合和字典。

4.3. 循环嵌套

在Python中,是允许在一个循环体中嵌套另一个循环。

(1). 在while循环中嵌套while循环

while 条件表达式1:
 while 条件表达式2:
 循环体2
 循环体1

(2). 在for 循环中嵌套 for 循环

for 迭代变量1 in 对象1:
 for 迭代变量2 in 对象2:
 循环体2
 循环体1

(3). 在while 循环中嵌套 for 循环

while 条件表达式:
 for 迭代变量 in 对象:
 循环体2
 循环体1

(4). 在 for 循环中嵌套 while 循环

while 条件表达式:
 for 迭代变量 in 对象:
 循环体2
 循环体1

特殊案例:九九乘法表

for i in range(0,10):
 for j in range(1,i+1):
 print(str(j) + "*" + str(i) + "=" + str(i * j) +"\t" ,end = " "
 print("")

5.跳转语句

当循环满足一定条件时,程序会一直执行下去,如果需要在中间离开循环,也就是for循环结束重复之前,或者while循环找到结束条件之前,即break语句和continue语句。

5.1 break语句

break可以终止当前循环,包括for循环和while循环在内的所有控制语句。

在while中使用break语句:

while 条件表达式1:
 执行语句
 if 条件表达式2:
 break

在for 中使用break语句

for 迭代变量 in 对象:
 if 条件表达式:
 break

Python流程控制语句的深入讲解

while语句使用break for语句中使用break

5.2.continue语句

continue语句的作用没有break语句强大,他只能终止本次循环而提前进入下次循环中。

在while中使用continue语句

while 条件表达式1:
 执行代码
 if 条件表达式2:
 continue

在for 中使用continue语句

for 迭代变量 in 对象:
 if 条件表达式:
 continue

Python流程控制语句的深入讲解

while语句使用continue for语句中使用continue

注:break与continue的区别

break语句一般会结合if 语句进行搭配使用,表示在某种条件下,跳出循环。如果使用嵌套循环,break语句将跳出最内层循环。

continue语句一般也会结合if语句进行搭配使用,表示在某种条件下,跳出当前循环的剩下语句,继续进行下一轮循环,如果使用嵌套循环,continue语句将只跳过最内层循环中剩余语句。

6.pass语句

在Python中pass语句表示空语句,它不做任何事情,一般起到站位作用,常用在代码调试等。

#例:
for i in range(1,10): #输出1~10的数不包含10
 if i % 2 == 0: #判断是否是偶数 
 print(i,end="") #在同一行打印偶数 
 else:  #不是偶数
 pass  #占位符,不做任何事情,直接跳过

#输出结果为:
2 4 6 8

总结

到此这篇关于Python流程控制语句的文章就介绍到这了,更多相关Python流程控制语句内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python调用cmd复制文件代码分享
Dec 27 Python
Python yield 使用浅析
May 28 Python
详解python3百度指数抓取实例
Dec 12 Python
python3+PyQt5实现使用剪贴板做复制与粘帖示例
Jan 24 Python
Pipenv一键搭建python虚拟环境的方法
May 22 Python
python utc datetime转换为时间戳的方法
Jan 15 Python
Python JSON格式数据的提取和保存的实现
Mar 22 Python
Django REST framework 视图和路由详解
Jul 19 Python
基于梯度爆炸的解决方法:clip gradient
Feb 04 Python
使用 Python ssh 远程登陆服务器的最佳方案
Mar 06 Python
Pytorch数据拼接与拆分操作实现图解
Apr 30 Python
Python日志处理模块logging用法解析
May 19 Python
keras自定义损失函数并且模型加载的写法介绍
Jun 15 #Python
python语言是免费还是收费的?
Jun 15 #Python
DataFrame.groupby()所见的各种用法详解
Jun 14 #Python
详解pandas.DataFrame.plot() 画图函数
Jun 14 #Python
Pandas把dataframe或series转换成list的方法
Jun 14 #Python
详解pandas获取Dataframe元素值的几种方法
Jun 14 #Python
Pandas对DataFrame单列/多列进行运算(map, apply, transform, agg)
Jun 14 #Python
You might like
重置版宣传动画
2020/04/09 魔兽争霸
php实现按指定大小等比缩放生成上传图片缩略图的方法
2014/12/15 PHP
php简单防盗链实现方法
2015/07/29 PHP
jQuery学习7 操作JavaScript对象和集合的函数
2010/02/07 Javascript
jQuery UI 应用不同Theme的办法
2010/09/12 Javascript
javascript学习笔记(二) js一些基本概念
2012/06/18 Javascript
基于JQuery实现的Select级联
2014/01/27 Javascript
js正则表达式中exec用法实例
2015/07/23 Javascript
js实现YouKu的漂亮搜索框效果
2015/08/19 Javascript
基于jQuery实现火焰灯效果导航菜单
2017/01/04 Javascript
Vue自定义指令详解
2017/07/28 Javascript
Vue使用Proxy监听所有接口状态的方法实现
2019/06/07 Javascript
Vue组件实现触底判断
2019/06/26 Javascript
[04:13]2014DOTA2国际邀请赛 专访DC目前形势不容乐观
2014/07/12 DOTA
Python中的命令行参数解析工具之docopt详解
2017/03/27 Python
Python 处理数据的实例详解
2017/08/10 Python
python实现内存监控系统
2021/03/07 Python
浅谈python实现Google翻译PDF,解决换行的问题
2018/11/28 Python
Python判断一个list中是否包含另一个list全部元素的方法分析
2018/12/24 Python
python 画三维图像 曲面图和散点图的示例
2018/12/29 Python
详解pyppeteer(python版puppeteer)基本使用
2019/06/12 Python
基于Python实现船舶的MMSI的获取(推荐)
2019/10/21 Python
python使用正则表达式(Regular Expression)方法超详细
2019/12/30 Python
Pytorch的mean和std调查实例
2020/01/02 Python
python实现百度OCR图片识别过程解析
2020/01/17 Python
Python selenium 加载并保存QQ群成员,去除其群主、管理员信息的示例代码
2020/05/28 Python
基于Python爬虫采集天气网实时信息
2020/06/05 Python
Keras搭建自编码器操作
2020/07/03 Python
Python使用requests模块爬取百度翻译
2020/08/25 Python
如何基于matlab相机标定导出xml文件
2020/11/02 Python
html5组织文档结构_动力节点Java学院整理
2017/07/11 HTML / CSS
怎样填写就业意向
2014/04/02 职场文书
办公室主任个人对照检查材料思想汇报
2014/10/11 职场文书
面试感谢信范文
2015/01/22 职场文书
FP-growth算法发现频繁项集——发现频繁项集
2021/06/24 Python
B站评分公认最好看的动漫,你的名字评分9.9,第六备受喜欢
2022/03/18 日漫