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虚拟环境virtualenv的使用教程
Oct 20 Python
python实现在IDLE中输入多行的方法
Apr 19 Python
PyQt5每天必学之单行文本框
Apr 19 Python
python实现图片识别汽车功能
Nov 30 Python
解决Pandas的DataFrame输出截断和省略的问题
Feb 08 Python
python将字符串转换成json的方法小结
Jul 09 Python
python按键按住不放持续响应的实例代码
Jul 17 Python
解析python实现Lasso回归
Sep 11 Python
python中Lambda表达式详解
Nov 20 Python
python tkinter GUI绘制,以及点击更新显示图片代码
Mar 14 Python
python打开文件的方式有哪些
Jun 29 Python
python之语音识别speech模块
Sep 09 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/03/04 欧美动漫
PHP 八种基本的数据类型小结
2011/06/01 PHP
PHP过滤黑名单关键字的方法
2014/12/01 PHP
PHP连接MySQL数据库的三种方式实例分析【mysql、mysqli、pdo】
2019/11/04 PHP
javascript 读取xml,写入xml 实现代码
2009/07/10 Javascript
js中各浏览器中鼠标按键值的差异
2011/04/07 Javascript
js左侧三级菜单导航实例代码
2013/09/13 Javascript
extjs表格文本启用选择复制功能具体实现
2013/10/11 Javascript
js给selected添加options的方法
2015/05/06 Javascript
javascript实现tab切换的两个实例
2015/11/05 Javascript
JS DOM实现鼠标滑动图片效果
2020/09/17 Javascript
jQuery通过写入cookie实现更换网页背景的方法
2016/04/15 Javascript
js验证真实姓名与身份证号,手机号的简单实例
2016/07/18 Javascript
ComboBox(下拉列表框)通过url加载调用远程数据的方法
2017/08/06 Javascript
vue bus全局事件中心简单Demo详解
2018/02/26 Javascript
详解Vue2.0配置mint-ui踩过的那些坑
2018/04/23 Javascript
React为 Vue 引入容器组件和展示组件的教程详解
2018/05/03 Javascript
详解React中传入组件的props改变时更新组件的几种实现方法
2018/09/13 Javascript
分享5个顶级的JavaScript Ajax组件库
2018/09/16 Javascript
详解VUE项目中安装和使用vant组件
2019/04/28 Javascript
Vue axios与Go Frame后端框架的Options请求跨域问题详解
2020/03/03 Javascript
Jquery $.map使用方法实例详解
2020/09/01 jQuery
Python求导数的方法
2015/05/09 Python
Python本地与全局命名空间用法实例
2015/06/16 Python
用python实现简单EXCEL数据统计的实例
2017/01/24 Python
python pcm音频添加头转成Wav格式文件的方法
2019/01/09 Python
python中用ctypes模拟点击的实例讲解
2020/11/26 Python
Theo + George官方网站:都柏林时尚品牌
2019/04/08 全球购物
公关关系专员的自我评价分享
2013/11/20 职场文书
演讲稿怎么写
2014/01/07 职场文书
竞选宣传委员演讲稿
2014/05/24 职场文书
大专生自我鉴定怎么写
2014/09/16 职场文书
大专毕业生自我鉴定范文(2篇)
2014/09/27 职场文书
2014年社区个人工作总结
2014/12/02 职场文书
上课睡觉万能检讨书
2015/02/17 职场文书
2016年春季趣味运动会开幕词
2016/03/04 职场文书