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 26 Python
python应用程序在windows下不出现cmd窗口的办法
May 29 Python
Python中的ceil()方法使用教程
May 14 Python
以视频爬取实例讲解Python爬虫神器Beautiful Soup用法
Jan 20 Python
使用Python判断质数(素数)的简单方法讲解
May 05 Python
Sublime开发python程序的示例代码
Jan 24 Python
在python中pandas读文件,有中文字符的方法
Dec 12 Python
Python 虚拟空间的使用代码详解
Jun 10 Python
对Python中小整数对象池和大整数对象池的使用详解
Jul 09 Python
python 8种必备的gui库
Aug 27 Python
如何用Django处理gzip数据流
Jan 29 Python
如何获取numpy array前N个最大值
May 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
PHP时间戳与日期之间转换的实例介绍
2013/04/19 PHP
PHP数组操作――获取数组最后一个值的方法
2015/04/14 PHP
php简单实现短网址(短链)还原的方法(测试可用)
2016/05/09 PHP
php实现根据身份证获取精准年龄
2020/02/26 PHP
IE与FireFox的兼容性问题分析
2007/04/22 Javascript
jQuery.extend 函数详解
2012/02/03 Javascript
编写针对IE的JS代码两种编写方法
2013/01/30 Javascript
jQuery动画效果-fadeIn fadeOut淡入浅出示例代码
2013/08/28 Javascript
javascript 拷贝节点cloneNode()使用介绍
2014/04/03 Javascript
js+html5绘制图片到canvas的方法
2015/06/05 Javascript
JavaScript中实现map功能代码分享
2015/06/11 Javascript
JavaScript验证Email(3种方法)
2015/09/21 Javascript
浅谈javascript中onbeforeunload与onunload事件
2015/12/10 Javascript
JS实现一个简单的日历
2017/02/22 Javascript
easyui combogrid实现本地模糊搜索过滤多列
2017/05/13 Javascript
Bootstrap Table使用整理(三)
2017/06/09 Javascript
JavaScript实现职责链模式概述
2018/01/25 Javascript
Vue.js构建你的第一个包并在NPM上发布的方法步骤
2019/05/01 Javascript
微信小程序实现判断是分享到群还是个人功能示例
2019/05/03 Javascript
小程序实现点击tab切换左右滑动
2020/11/16 Javascript
[19:24]DOTA2客户端使用指南 一分钟快速设置轻松超神
2013/09/24 DOTA
python3实现全角和半角字符转换的方法示例
2017/09/21 Python
Python 3.6 性能测试框架Locust安装及使用方法(详解)
2017/10/11 Python
python动态进度条的实现代码
2019/07/03 Python
Python 找出出现次数超过数组长度一半的元素实例
2020/05/11 Python
python 图像增强算法实现详解
2021/01/24 Python
CSS超出文本指定宽度用省略号代替和文本不换行
2016/05/05 HTML / CSS
美国瑜伽品牌:Gaiam
2017/10/31 全球购物
英国布鲁姆精品店:Bloom Boutique
2018/03/01 全球购物
JD Sports比利时官网:英国领先的运动鞋和运动服饰零售商
2018/10/10 全球购物
Shopee越南:东南亚与台湾电商平台
2019/02/03 全球购物
法国在线药房:1001Pharmacies
2021/03/07 全球购物
初三学习决心书
2014/03/11 职场文书
2014年标准化工作总结
2014/12/17 职场文书
培训学校2015年度工作总结
2015/07/20 职场文书
Python常遇到的错误和异常
2021/11/02 Python