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函数中定义参数的四种方式
Nov 30 Python
Python比较文件夹比另一同名文件夹多出的文件并复制出来的方法
Mar 05 Python
Python基于有道实现英汉字典功能
Jul 25 Python
python爬取w3shcool的JQuery课程并且保存到本地
Apr 06 Python
python:接口间数据传递与调用方法
Dec 17 Python
django query模块
Apr 20 Python
树莓派+摄像头实现对移动物体的检测
Jun 22 Python
django如何自己创建一个中间件
Jul 24 Python
wxPython色环电阻计算器
Nov 18 Python
Python中sorted()排序与字母大小写的问题
Jan 14 Python
在jupyter notebook 添加 conda 环境的操作详解
Apr 10 Python
Python扫描端口的实现
Jan 25 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
php json_encode值中大括号与花括号区别
2013/09/30 PHP
PHP消息队列用法实例分析
2016/02/12 PHP
PHP编程之设置apache虚拟目录
2016/07/08 PHP
PHP实现的微信APP支付功能示例【基于TP5框架】
2019/09/16 PHP
CSS+JS构建的图片查看器
2006/07/22 Javascript
JavaScript XML和string相互转化实现代码
2011/07/04 Javascript
JavaScript中的null和undefined解析
2012/04/14 Javascript
密码框显示提示文字jquery示例
2013/08/29 Javascript
Angular.js如何从PHP读取后台数据
2016/03/24 Javascript
JavaScript的Backbone.js框架环境搭建及Hellow world示例
2016/05/07 Javascript
利用JQuery阻止事件冒泡
2016/12/01 Javascript
详解Vue.js动态绑定class
2016/12/20 Javascript
提高Node.js性能的应用技巧分享
2017/08/10 Javascript
Angular利用trackBy提升性能的方法
2018/01/26 Javascript
vue-cli3.0配置及使用注意事项详解
2018/09/05 Javascript
[02:30]联想杯DOTA2完美世界全国高校联赛—北京站现场
2015/11/16 DOTA
浅谈Python数据类型判断及列表脚本操作
2016/11/04 Python
python 环境变量和import模块导入方法(详解)
2017/07/11 Python
python与C互相调用的方法详解
2017/07/14 Python
Python单体模式的几种常见实现方法详解
2017/07/28 Python
Windows 7下Python Web环境搭建图文教程
2018/03/20 Python
在Python中分别打印列表中的每一个元素方法
2018/11/07 Python
celery4+django2定时任务的实现代码
2018/12/23 Python
Python语言进阶知识点总结
2019/05/28 Python
python cv2.resize函数high和width注意事项说明
2020/07/05 Python
Windows下Sqlmap环境安装教程详解
2020/08/04 Python
DRF框架API版本管理实现方法解析
2020/08/21 Python
Numpy(Pandas)删除全为零的列的方法
2020/09/11 Python
如何使用 Flask 做一个评论系统
2020/11/27 Python
土耳其国际性时尚购物网站:Modanisa
2018/01/19 全球购物
俄罗斯美容和健康网上商店:Созвездие Красоты
2019/07/23 全球购物
.NET初级开发工程师面试题(包括Javascript)
2012/08/22 面试题
厂长助理岗位职责
2013/12/27 职场文书
业务总经理岗位职责
2014/02/03 职场文书
工程款催款函
2015/06/24 职场文书
2016年大学生社区服务活动总结
2016/04/06 职场文书