Python 简明教程 --- 6,Python 控制流
微信公众号:码农充电站pro
个人主页:https://codeshellme.github.io
Talk is cheap, show me the code.
—— Linus Torvalds
目录

控制流用来控制程序的处理流程,即当程序满足或不满足某一条件时,让程序去做哪些事情。
控制流语句使得我们可以处理丰富的代码逻辑。
基本的控制流语句有三种,分别是:
- if 条件语句
- for 循环语句
- while 循环语句
1,if 条件语句
if 语句用于判断一个条件,当条件为True 时,执行一段代码,当条件为False 时,执行另一段代码。
if 语句有三种结构:
- 没有分支
- 一个分支
- 多个分支
分支内要执行的语句,需要有缩进,每个条件后边要有冒号:,如下:
# 没有分支
if 条件:
# 条件为True 时要执行的语句
...
# 一个分支
if 条件:
# 条件为True 时要执行的语句
...
else:
# 条件为False 时要执行的语句
...
# 多个分支
if 条件1:
# 条件1 为True 时要执行的语句
...
elif 条件2:
# 条件2 为True 时要执行的语句
...
elif 条件3:
# 条件3 为True 时要执行的语句
...
else:
# 条件1,条件2,条件3 都为False 时要执行的语句
...
多分支语句时,如果有多个条件都为True,则只会执行第一个条件为True 内的语句,其它条件为True 内的语句不会执行。
比如上面的多分支if 语句中:
- 如果
条件1,条件2,条件3都为True,则只会执行条件1内的语句。 - 如果
条件1为False,条件2,条件3都为True,则只会执行条件2内的语句。
if 语句后边的条件,可带括号(),可不带括号(),如下是带括号的:
# 带括号的if 语句
if (条件):
...
if 语句嵌套
if 语句中还可以嵌套if 语句,下面是一个简单的if 嵌套语句结构:
if 条件1:
...
if 条件2:
...
...
示例,根据分数判断等级:
scores = ... # 分数
grade = None # 等级
if scores > 90:
# 分数大于90 时,等级为优秀
grade = '优秀'
elif scores > 80:
# 分数大于80 时,等级为良好
grade = '良好'
elif scores > 60:
# 分数大于60 时,等级为及格
grade = '及格'
else:
# 否则,等级为不及格
grade = '不及格'
2,for 循环语句
Python 中的for 循环不同于C/C++,Java 中的for 循环。
Python 中的for 语句实际上是for...in 语句,通常用于遍历一个序列,序列后边要有一个冒号:。
说明:
一个字符串,一个列表,都是一个序列。
字符串和列表,在后续章节会详细介绍。
遍历列表:
# l 是一个列表
l = [1, 2, 3]
# 遍历列表
for i in l:
# i 是列表中的每个元素
print(i)
其输出结果为:
1
2
3
遍历字符串:
# s 是一个字符串
s = 'abc'
# 遍历字符串中的字符
for i in s:
print(i)
其输出结果为:
a
b
c
for 循环中的else
for 循环中也可以有一个else 语句,在for 循环执行完之后,会在最后执行else 语句:
# l 是一个列表
l = [1, 2, 3]
# 遍历列表
for i in l:
# i 是列表中的每个元素
print(i)
else:
print('for 循环执行结束')
其输出结果如下:
1
2
3
for 循环执行结束
当 for 循环的执行过程中遇到break 语句,else 语句则不会被执行:
l = [1, 2, 3]
for i in l:
print(i)
if i == 3:
# 当i 为3 时,会执行 break
break
else:
print('for 循环执行结束')
该段代码在执行到i 为3 时,会执行到break 语句,break 语句会跳出for 循环,else 语句也是for 循环的一部分,所以,else 中的语句不会被执行到。
其输出结果如下:
1
2
3
注意:
break语句会在下面介绍到。
3,while 循环语句
下面是while 循环语句的语法格式,条件后边有一个冒号:,如下:
while 条件:
# 条件为True 时要执行的语句
...
...
while 语句的含义是,当条件为True 时,会一直执行while 循环中的代码,直到某一时刻条件变为了False。
每次在执行while 循环体内的语句块之前,都会判断条件,如果条件为True,则执行循环体,如果条件为False,则退出循环体。
示例:
i = 3
while i > 0:
print(i)
i = i - 1
这段代码的输出结果为:
3
2
1
当i 减到0 时,i > 0 为False,此时while 循环结束。
while 循环中else
while 循环也与for 循环一样,可以有else 语句:
while 条件:
...
else:
...
无限循环
无限循环是一个特殊的循环,其条件永远为真,如下就是一个无限循环:
while True:
...
...
只要无限循环中的语句没有主动退出,或者遇到异常,则无限循环中的语句将永远执行下去。
4,continue 语句
continue 语句用在for 循环和while 循环中,当遇到continue 语句时,会跳到循环的开头执行。
示例:
i = 3
while i > 0:
i = i - 1
if i == 2:
print('跳到循环开头')
continue
print(i)
其输出如下:
跳到循环开头
1
0
当i == 2 时,执行完print('跳到循环开头') 后,执行continue 语句,然后跳到循环开头执行,所以,i == 2 时,没有执行print(i)。
5,break 语句
break 语句也是用在for 循环和while 循环中,当遇到break 语句时,会跳出循环体。
示例:
i = 3
while i > 0:
i = i - 1
if i == 0:
print('跳出循环')
break
print(i)
其输出结果如下:
2
1
跳出循环
当i == 0 时,执行完print('跳出循环') 后,执行break 语句,然后跳出循环,所以,i == 0 时,没有执行print(i)。
6,pass 语句
pass 语句经常在控制流中用到,pass 语句是一个空语句,不执行任何东西,只起到一个占位的作用。
示例:
i = ...
if i == 0:
# 做任何事情
pass
else:
print('i 不为 0')
(完。)
推荐阅读:
Python 简明教程 --- 2,第一个Python 程序
Python 简明教程 --- 4,Python 变量与基本数据类型
Python 简明教程 --- 5,Python 表达式与运算符
欢迎关注作者公众号,获取更多技术干货。

Python 简明教程 --- 6,Python 控制流的更多相关文章
- 《Python简明教程》总结
Python经典教程<Python简明教程> 目录: 为什么Python 安装Python 体验Python Python数据类型 运算符与表达式 控制流 函数 模块 数据结构 解决问题 ...
- Python 简明教程 --- 8,Python 字符串函数
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 好代码本身就是最好的文档.当你需要添加一个注释时,你应该考虑如何修改代码才能不需要注释. -- St ...
- Python 简明教程 --- 9,Python 编码
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 当你选择了一种语言,意味着你还选择了一组技术.一个社区. -- Joshua Bloch 目录 1, ...
- Python 简明教程 ---10,Python 列表
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 程序 = 算法 + 数据结构 -- Nicklaus Wirth 目录 从这句话程序 = 算法 + ...
- Python 简明教程 --- 11,Python 元组
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 软件工程的目标是控制复杂度,而不是增加复杂性. -- Dr. Pamela Zave 目录 我们在上 ...
- Python 简明教程 --- 7,Python 字符串
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 过早的优化代码是罪恶之源. -- Donald Knuth 目录 无论哪种编程语言,字符串处理都是最 ...
- 【笔记】Python简明教程
Python简明教程,此资源位于http://woodpecker.org.cn/abyteofpython_cn/chinese/ s=u'中文字符' #u表示unicode,使用u之后能正常显示中 ...
- python中global的用法——再读python简明教程
今天看了知乎@萧井陌的编程入门指南,想重温一下 <python简明教程>,对global的用法一直不太熟练,在此熟练一下,并实践一下python中list.tuple.set作为参数的区别 ...
- python简明教程
Python简明教程 MachinePlay关注 0.7072018.09.26 01:49:43字数 2,805阅读 9,287 Python一小时快速入门 1.Python简介 pylogo. ...
随机推荐
- 震惊!Windows Service服务和定时任务框架quartz之间原来是这种关系……
过场CG: 接到公司领导的文件指示,“小熊”需要在6月底去海外执行一个行动代号为[定时任务]的营救计划,这个计划关系到公司某个项目的生死(数据安全漏洞),作战部拟定两个作战方案: 方案一:使用务定 ...
- Java实现 LeetCode 633 平方数之和(暴力大法)
633. 平方数之和 给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a2 + b2 = c. 示例1: 输入: 5 输出: True 解释: 1 * 1 + 2 * 2 = 5 ...
- Java实现 蓝桥杯 算法提高 摩尔斯电码
算法提高 9-3摩尔斯电码 时间限制:1.0s 内存限制:256.0MB 提交此题 问题描述 摩尔斯电码破译.类似于乔林教材第213页的例6.5,要求输入摩尔斯码,返回英文.请不要使用"zy ...
- Java 实现 蓝桥杯 历届试题 分糖果
问题描述 有n个小朋友围坐成一圈.老师给每个小朋友随机发偶数个糖果,然后进行下面的游戏: 每个小朋友都把自己的糖果分一半给左手边的孩子. 一轮分糖后,拥有奇数颗糖的孩子由老师补给1个糖果,从而变成偶数 ...
- java实现第六届蓝桥杯立方尾不变
立方尾不变 立方尾不变 有些数字的立方的末尾正好是该数字本身. 比如:1,4,5,6,9,24,25,- 请你计算一下,在10000以内的数字中(指该数字,并非它立方后的数值),符合这个特征的正整数一 ...
- 记一次mysql修复错误数据问题
问题描述 之前做的一个服务端配合硬件端的项目,今天突然在微信上跟我讲在管理后台订单列表里的设备编号看不见后3位数字. 原因查找 看了下数据库表发现原因是因为订单表的设备编号长度限制了16位(开发时跟硬 ...
- (九)DVWA之SQL Injection--SQLMap&Fiddler测试(High)
一.测试需求分析 测试对象:DVWA漏洞系统--SQL Injection模块--ID提交功能 防御等级:High 测试目标:判断被测模块是否存在SQL注入漏洞,漏洞是否可利用,若可以则检测出对应的数 ...
- 彻底搞懂 etcd 系列文章(一):初识 etcd
0 专辑概述 etcd 是云原生架构中重要的基础组件,由 CNCF 孵化托管.etcd 在微服务和 Kubernates 集群中不仅可以作为服务注册与发现,还可以作为 key-value 存储的中间件 ...
- 基于ABP做一个简单的系统——实战篇:1.项目准备
现阶段需要做一个小项目,体量很小,业务功能比较简单,就想到用最熟悉的.net来做,更何况现在.net core已经跨平台,也可以在linux服务器上部署.所以决定用.net core 3.1+mysq ...
- iOS -App主流框架UINavigationController && UITabBarController的简单使用
一个iOS app几乎没有由一个控制器组成,除非这个app非常简单. 当app中有多个控制器的时候,就需要对这些控制器进行管理,用1个控制器去管理其他多个控制器: 如图所示: ...