简单谈谈Python流程控制语句


Posted in Python onDecember 04, 2016

人们常说人生就是一个不断做选择题的过程:有的人没得选,只有一条路能走;有的人好一点,可以二选一;有些能力好或者家境好的人,可以有更多的选择;还有一些人在人生的迷茫期会在原地打转,找不到方向。对于相信有上帝的人来讲,这就好像是上帝事先为我们制定好了人生路线,也好像是那些神仙为唐曾师徒的取经之路提前设置的重重磨难,上帝和神仙掌控了一切。编程语言可以模拟人类生活的方方面面,程序员就像上帝和神仙一样可以通过编程语言中特殊的关键字控制程序的执行过程,这些关键字组成的就是流程控制语句。

编程语言中的流程控制语句分为以下几类:

  1. 顺序语句
  2. 分支语句
  3. 循环语句

其中顺序语句不需要单独的关键字来控制,就是一行行的执行,不需要特殊的说明。这里主要要说的是 分支语句 和 循环语句。

一、分支语句

条件分支语句是通过一条或多条语句(判断条件)的执行结果(True/False)来决定执行哪个分支的代码块。Python中提供的分支语句为:if..else语句,没有提供switch..case语句。if..else语句有以下几种形式:

单分支:
if 判断条件:
    代码块
如果单分支语句的代码块只有一条语句,可以把if语句和代码写在同一行:

if 判断条件: 一句代码
实例:判断指定的uid是不是root用户

uid = 0

if uid == 0:
  print("root")

也可以这样写:

uid = 0

if uid == 0: print("root")

输出结果:root

双分支:

if 判断条件:
    代码块
else:
    代码块
实例:根据用户id打印用户身份

uid = 100

if uid == 0:
  print("root")
else:
  print("Common user")

输出结果:Common user

多分支:

if 判断条件1:
    代码块1
elif 判断条件2:
    代码块2
...
elif 判断条件n:
    代码块n
else:
    默认代码块

实例:根据学生分数打印字母等级

score = 88.8
level = int(score % 10)

if level >= 10:
  print('Level A+')
elif level == 9:
  print('Level A')
elif level == 8:
  print('Level B')
elif level == 7:
  print('Level C')
elif level == 6:
  print('Level D')
else:
  print('Level E')

输出结果:Level B

说明:

当上面的“判断条件”中的表达式可以是任意的表达式,也可以是任意类型的数据对象实例。只要判断条件的最终返回结果的“真”值测试为True时,就表示该条件成立,相应的代码块就会被执行;否则表示条件不成立,需要判断下一个条件。

二、循环语句

当我们需要多次执行一个代码语句或代码块时,可以使用循环语句。Python中提供的循环语句有:while循环和for循环。需要注意的是Python中没有do..while循环。此外,还有几个用于控制循环执行过程的循环控制语句:break、continue和pass。

1. while循环

基本形式
while循环语句的基本形式如下:

while 判断条件:
    代码块
当给定的判断条件的返回值的真值测试结果为True时执行循环体的代码,否则退出循环体。

实例:循环打印数字0-9

count = 0
while count <= 9:
  print(count, end=' ')
  count += 1

输出结果:0 1 2 3 4 5 6 7 8 9

while死循环

当while的判断条件一直为True时,while循环体中代码就会永远循环下去。

while True:
    print("这是一个死循环")
输出结果:

这是一个死循环
这是一个死循环
这是一个死循环
...
此时可以通过 Ctrl + C终止运行。

while..else
语句形式:

while 判断条件:
    代码块
else:
    代码块
else中的代码块会在while循环正常执行完的情况下执行,如果while循环被break中断,else中的代码块不会执行。

实例1:while循环正常执行结束的情况(else中的语句会被执行)

count = 0
while count <=9:
  print(count, end=' ')
  count += 1
else:
  print('end')

执行结果为:0 1 2 3 4 5 6 7 8 9 end

实例2:while循环被中断的情况(else中的语句不会被执行)

count = 0
while count <=9:
  print(count, end=' ')
  if count == 5:
    break
  count += 1
else:
  print('end')

输出结果:0 1 2 3 4 5

2. for循环

for循环通常用于遍历序列(如list、tuple、range、str)、集合(如 set)和映射对象(如dict)。

基本形式
for循环的基本格式:

for 临时变量 in 可迭代对象:
    代码块
实例:遍历打印一个list中的元素

names = ['Tom', 'Peter', 'Jerry', 'Jack']
for name in names:
  print(name)

对于序列,也通过索引进行迭代:

names = ['Tom', 'Peter', 'Jerry', 'Jack']
for i in range(len(names)):
  print(names[i])

执行结果:

Tom
Peter
Jerry
Jack

for...else

与while..else基本一致,不再赘述。

3. 循环控制语句

循环控制语句可以更改循环体中程序的执行过程,如中断循环、跳过本次循环。

循环控制语句 说明
break 终止整个循环
contine 跳过本次循环,执行下一次循环
pass pass语句是个空语句,只是为了保持程序结构的完整性,没有什么特殊含义。pass语句并不是只能用于循环语句中,也可以用于分支语句中。
实例1:遍历0-9范围内的所有数字,并通过循环控制语句打印出其中的奇数

for i in range(10):
  if i % 2 == 0:
    continue
  print(i, end=' ')

输出结果:1 3 5 7 9

实例2:通过循环控制语句打印一个列表中的前3个元素

names = ['Tom', 'Peter', 'Jerry', 'Jack', 'Lilly']
for i in range(len(names)):
  if i >= 3:
    break
  print(names[i])

输出结果:

Tom
Peter
Jerry

4. 循环嵌套

循环嵌套是指:在一个循环体里面嵌入另一循环。

实例1:通过while循环打印99乘法表

j = 1
while j <= 9:
  i = 1
  while i <= j:
    print('%d*%d=%d' % (i, j, i*j), end='\t')
    i += 1
  print()
  j += 1

实例2:通过for循环打印99乘法表

for j in range(1, 10):
  for i in range(1, j+1):
    print('%d*%d=%d' % (i, j, i*j), end='\t')
    i += 1
  print()
  j += 1

输出结果:

1*1=1  
1*2=2   2*2=4  
1*3=3   2*3=6   3*3=9  
1*4=4   2*4=8   3*4=12  4*4=16 
1*5=5   2*5=10  3*5=15  4*5=20  5*5=25 
1*6=6   2*6=12  3*6=18  4*6=24  5*6=30  6*6=36 
1*7=7   2*7=14  3*7=21  4*7=28  5*7=35  6*7=42  7*7=49 
1*8=8   2*8=16  3*8=24  4*8=32  5*8=40  6*8=48  7*8=56  8*8=64 
1*9=9   2*9=18  3*9=27  4*9=36  5*9=45  6*9=54  7*9=63  8*9=72  9*9=81 

Python 相关文章推荐
python通过get,post方式发送http请求和接收http响应的方法
May 26 Python
编写自定义的Django模板加载器的简单示例
Jul 21 Python
浅谈Python基础之I/O模型
May 11 Python
Python SMTP发送邮件遇到的一些问题及解决办法
Oct 24 Python
python如何查看微信消息撤回
Nov 27 Python
用Python和WordCloud绘制词云的实现方法(内附让字体清晰的秘笈)
Jan 08 Python
Python实现的统计文章单词次数功能示例
Jul 08 Python
Python3+PyInstall+Sciter解决报错缺少dll、html等文件问题
Jul 15 Python
基于python分析你的上网行为 看看你平时上网都在干嘛
Aug 13 Python
Python批量启动多线程代码实例
Feb 18 Python
OpenCV 之按位运算举例解析
Jun 19 Python
python空元组在all中返回结果详解
Dec 15 Python
python中正则的使用指南
Dec 04 #Python
win与linux系统中python requests 安装
Dec 04 #Python
详解Python各大聊天系统的屏蔽脏话功能原理
Dec 01 #Python
python模块简介之有序字典(OrderedDict)
Dec 01 #Python
Python中字符串的修改及传参详解
Nov 30 #Python
简单谈谈Python中的闭包
Nov 30 #Python
浅析Python中yield关键词的作用与用法
Nov 29 #Python
You might like
德生PL990,目前市面上唯一一款便携式插卡蓝牙全波段高性能收音机
2021/03/02 无线电
php smarty截取中文字符乱码问题?gb2312/utf-8
2011/11/07 PHP
Yii框架中sphinx索引配置方法解析
2016/10/18 PHP
PHP实现动态添加XML中数据的方法
2018/03/30 PHP
Laravel框架使用Seeder实现自动填充数据功能
2018/06/13 PHP
用显卡加速,轻松把笔记本打造成取暖器的办法!
2013/04/17 Javascript
jquery插件开发注意事项小结
2013/06/04 Javascript
Jquery选择子控件&quot;大于号&quot;和&quot; &quot;区别介绍及使用示例
2013/06/25 Javascript
jquery编写Tab选项卡滚动导航切换特效
2020/07/17 Javascript
jQuery实现的鼠标经过时变宽的效果(附demo源码)
2016/04/28 Javascript
jQuery中的通配符选择器使用总结
2016/05/30 Javascript
功能强大的Bootstrap使用手册(一)
2016/08/02 Javascript
针对后台列表table拖拽比较实用的jquery拖动排序
2016/10/10 Javascript
jquery组件WebUploader文件上传用法详解
2020/10/23 Javascript
JS实现仿饿了么在浏览器标签页失去焦点时网页Title改变
2017/06/01 Javascript
jQuery实现点击旋转,再点击恢复初始状态动画效果示例
2018/12/11 jQuery
layui框架与SSM前后台交互的方法
2019/09/12 Javascript
Vue 技巧之控制父类的 slot
2020/02/24 Javascript
jQuery 添加元素和删除元素的方法
2020/07/15 jQuery
Python入门篇之面向对象
2014/10/20 Python
Python全局变量用法实例分析
2016/07/19 Python
Python中struct模块对字节流/二进制流的操作教程
2017/01/21 Python
Python中@property的理解和使用示例
2019/06/11 Python
同步和异步有何异同,在什么情况下分别使用他们
2013/04/09 面试题
白酒业务员岗位职责
2013/12/27 职场文书
2014年父亲节活动方案
2014/03/06 职场文书
行政人事岗位职责
2014/03/17 职场文书
共产党员承诺书
2014/03/25 职场文书
文秘求职信范文
2014/04/10 职场文书
我的中国梦演讲稿300字
2014/08/19 职场文书
中国梦演讲稿5分钟
2014/08/19 职场文书
意向协议书
2015/01/27 职场文书
贷款收入证明范本
2015/06/12 职场文书
保护环境的宣传语
2015/07/13 职场文书
北京大学中文系教授推荐的10本小说
2019/08/08 职场文书
PostgreSQL基于pgrouting的路径规划处理方法
2022/04/18 PostgreSQL