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最基本的操作字典的方法
Apr 24 Python
Python简单删除目录下文件以及文件夹的方法
May 27 Python
Python编程之字符串模板(Template)用法实例分析
Jul 22 Python
tensorflow 获取变量&打印权值的实例讲解
Jun 14 Python
python flask实现分页的示例代码
Aug 02 Python
Python网络爬虫之爬取微博热搜
Apr 18 Python
python开头的coding设置方法
Aug 08 Python
Python数据分析pandas模块用法实例详解
Nov 20 Python
python使用rsa非对称加密过程解析
Dec 28 Python
Python的历史与优缺点整理
May 26 Python
pymysql模块使用简介与示例
Nov 17 Python
DRF使用simple JWT身份验证的实现
Jan 14 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
ThinkPHP自动验证失败的解决方法
2011/06/09 PHP
php使用curl模拟登录后采集页面的例子
2013/11/04 PHP
php使用memcoder将视频转成mp4格式的方法
2015/03/12 PHP
php魔术方法功能与用法实例分析
2016/10/19 PHP
浅谈laravel orm 中的一对多关系 hasMany
2019/10/21 PHP
基于jquery实现后台左侧菜单点击上下滑动显示
2013/04/11 Javascript
利用毫秒减值计算时长的js代码
2013/09/22 Javascript
jQuery判断对象是否存在的方法
2015/02/05 Javascript
jquery+css实现绚丽的横向二级下拉菜单-附源码下载
2015/08/23 Javascript
js实现仿qq消息的弹出窗效果
2016/01/06 Javascript
Angularjs实现搜索关键字高亮显示效果
2017/01/17 Javascript
jquery replace方法去空格
2017/05/08 jQuery
浅析Node.js非对称加密方法
2018/01/29 Javascript
webpack4 SCSS提取和懒加载的示例
2018/09/03 Javascript
mock.js实现模拟生成假数据功能示例
2019/01/15 Javascript
如何解决.vue文件url引用文件的问题
2019/01/18 Javascript
vue-router实现编程式导航的代码实例
2019/01/19 Javascript
Angular6使用forRoot() 注册单一实例服务问题
2019/08/27 Javascript
微信小程序如何获取用户头像和昵称
2019/09/23 Javascript
js实现拖拽元素选择和删除
2020/08/25 Javascript
vue中利用three.js实现全景图的完整示例
2020/12/07 Vue.js
[00:21]DOTA2亚洲邀请赛 Logo演绎
2015/02/07 DOTA
python文件与目录操作实例详解
2016/02/22 Python
Python读取和处理文件后缀为.sqlite的数据文件(实例讲解)
2017/06/27 Python
使用Python快乐学数学Github万星神器Manim简介
2019/08/07 Python
如何修复使用 Python ORM 工具 SQLAlchemy 时的常见陷阱
2019/11/19 Python
python+selenium+chromedriver实现爬虫示例代码
2020/04/10 Python
应用化学专业本科生求职信
2013/09/29 职场文书
大学生个人推荐信范文
2013/11/25 职场文书
动员大会主持词
2014/03/20 职场文书
图书室标语
2014/06/21 职场文书
合唱兴趣小组活动总结
2014/07/10 职场文书
运动员获奖感言
2014/08/15 职场文书
2014年教师节座谈会发言稿
2014/09/10 职场文书
综合测评个人总结
2015/03/03 职场文书
postgresql 删除重复数据案例详解
2021/08/02 PostgreSQL