微信公众号:码农充电站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 内的语句。
  • 如果条件1False条件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 循环执行结束')

该段代码在执行到i3 时,会执行到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 > 0False,此时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 简明教程 --- 1,搭建Python 环境

Python 简明教程 --- 2,第一个Python 程序

Python 简明教程 --- 3,Python 基础概念

Python 简明教程 --- 4,Python 变量与基本数据类型

Python 简明教程 --- 5,Python 表达式与运算符


欢迎关注作者公众号,获取更多技术干货。

Python 简明教程 --- 6,Python 控制流的更多相关文章

  1. 《Python简明教程》总结

    Python经典教程<Python简明教程> 目录: 为什么Python 安装Python 体验Python Python数据类型 运算符与表达式 控制流 函数 模块 数据结构 解决问题 ...

  2. Python 简明教程 --- 8,Python 字符串函数

    微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 好代码本身就是最好的文档.当你需要添加一个注释时,你应该考虑如何修改代码才能不需要注释. -- St ...

  3. Python 简明教程 --- 9,Python 编码

    微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 当你选择了一种语言,意味着你还选择了一组技术.一个社区. -- Joshua Bloch 目录 1, ...

  4. Python 简明教程 ---10,Python 列表

    微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 程序 = 算法 + 数据结构 -- Nicklaus Wirth 目录 从这句话程序 = 算法 + ...

  5. Python 简明教程 --- 11,Python 元组

    微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 软件工程的目标是控制复杂度,而不是增加复杂性. -- Dr. Pamela Zave 目录 我们在上 ...

  6. Python 简明教程 --- 7,Python 字符串

    微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 过早的优化代码是罪恶之源. -- Donald Knuth 目录 无论哪种编程语言,字符串处理都是最 ...

  7. 【笔记】Python简明教程

    Python简明教程,此资源位于http://woodpecker.org.cn/abyteofpython_cn/chinese/ s=u'中文字符' #u表示unicode,使用u之后能正常显示中 ...

  8. python中global的用法——再读python简明教程

    今天看了知乎@萧井陌的编程入门指南,想重温一下 <python简明教程>,对global的用法一直不太熟练,在此熟练一下,并实践一下python中list.tuple.set作为参数的区别 ...

  9. python简明教程

    Python简明教程 MachinePlay关注 0.7072018.09.26 01:49:43字数 2,805阅读 9,287 Python一小时快速入门 1.Python简介   pylogo. ...

随机推荐

  1. python数据类型 列表+元组

    一:列表 二:元组 一:列表list: 1.列表中的每个元素都可变的,意味着可以对每个元素进行修改和删除: 2.列表是有序的,每个元素的位置是确定的,可以用索引去访问每个元素: 3.列表的所有元素放在 ...

  2. Rocket - debug - Periphery

    https://mp.weixin.qq.com/s/uGxn-Xec0LkwdaSsCtQBvw 简单介绍Periphery的实现. 1. ExportDebugDMI/ExportDebugJTA ...

  3. 收藏!如何有效实施devops?

    当今IT行业的竞争日益激烈,各家公司都在寻找优化软件研发过程的方法,因为交付比对手更具竞争力的产品已经越发成为一件成本高昂的事情.这也是DevOps发挥作用的地方,因为它可以在工程管理的各个方面提供帮 ...

  4. 企业级Python开发大佬利用网络爬虫技术实现自动发送天气预告邮件

    前天小编带大家利用Python网络爬虫采集了天气网的实时信息,今天小编带大家更进一步,将采集到的天气信息直接发送到邮箱,带大家一起嗨~~拓展来说,这个功能放在企业级角度来看,只要我们拥有客户的邮箱,之 ...

  5. Java实现 LeetCode 753 破解保险箱(递归)

    753. 破解保险箱 有一个需要密码才能打开的保险箱.密码是 n 位数, 密码的每一位是 k 位序列 0, 1, -, k-1 中的一个 . 你可以随意输入密码,保险箱会自动记住最后 n 位输入,如果 ...

  6. Java实现UVA10131越大越聪明(蓝桥杯每周一题)

    10131越大越聪明(蓝桥杯每周一题) [问题描述] 一些人认为,大象的体型越大,脑子越聪明.为了反驳这一错误观点,你想要分析一组大象的数据,找出尽量 多的大象组成一个体重严格递增但 IQ 严格递减的 ...

  7. Java实现 LeetCode 57 插入区间

    57. 插入区间 给出一个无重叠的 ,按照区间起始端点排序的区间列表. 在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间). 示例 1: 输入: inte ...

  8. Android中如何使用单选对话框

    给Button设置OnClick事件设置 int id=0; final String [] s={"单选A","单选B","单选C",&q ...

  9. Cordova+ionic+angular 项目从 UIWebView 更换为 WKWebView ,通过IOS审核

    当前 cordova-ios 最新版本 5.1.1 新版本 cordova-ios 将删除 UIWebView 代码中的所有引用.WKWebView 将是 Cordova 的默认 Web 视图.   ...

  10. 涨见识了,在终端执行 Python 代码的 6 种方式!

    原作:BRETT CANNON 译者:豌豆花下猫@Python猫 英文:https://snarky.ca/the-many-ways-to-pass-code-to-python-from-the- ...