Python中的流程控制详解


Posted in Python onFebruary 18, 2021

流程控制无非就是if else之类的控制语句,今天我们来看一下Python中的流程控制会有什么不太一样的地方。

while语句

python中的while语句和其他语言没有什么不一样,我使用while语句来编写一个斐波拉赫数列:

In [56]: while x < 10 :
 ...:  print(x)
 ...:  x, y = y, x+y
 ...:
0
1
1
2
3
5
8

if 语句

python中的 if 可以和 elif 或者 else 配合使用:

>>> x = int(input("Please enter an integer: "))
Please enter an integer: 42
>>> if x < 0:
...  x = 0
...  print('Negative changed to zero')
... elif x == 0:
...  print('Zero')
... elif x == 1:
...  print('Single')
... else:
...  print('More')
...
More

if语句很简单,这里就不做过多的介绍。

for语句

Python中的for语句主要用来对序列进行迭代,比如列表或者字符串:

In [57]: ages = [ 10, 14, 18, 20 ,25]

In [58]: for age in ages:
 ...:  print(age)
 ...:
10
14
18
20
25

遍历过程中,为了防止在遍历的时候原序列被修改,我们可以遍历序列的拷贝:

In [59]: for age in ages.copy():
 ...:  print(age)
 ...:
10
14
18
20
25

for语句和range()函数的结合,可以得到不一样的效果。

range()用来生成给定范围内的集合:

In [61]: for age in range(5):
 ...:  print(age)
 ...:
0
1
2
3
4

range()函数还可以带步长作为第三个参数:

In [62]: for age in range(5, 10 , 2):
 ...:  print(age)
 ...:
5
7
9

Range()和len()组合,可以方便的变量列表:

>>> a = ['Mary', 'had', 'a', 'little', 'lamb']
>>> for i in range(len(a)):
...  print(i, a[i])
...
0 Mary
1 had
2 a
3 little
4 lamb

Break

break用来跳出最近的for或者while循环。

要注意的是,for循环可以和else一起使用:

In [64]: for n in range(2, 10):
 ...:  for x in range(2, n):
 ...:   if n % x == 0:
 ...:    print(n, 'equals', x, '*', n//x)
 ...:    break
 ...:  else:
 ...:   print(n, 'is a prime number')
 ...:
2 is a prime number
3 is a prime number
4 equals 2 * 2
5 is a prime number
6 equals 2 * 3
7 is a prime number
8 equals 2 * 4
9 equals 3 * 3

循环中的else语句,会在for循环执行完毕,之后执行。如果我们使用break对for循环进行了中断,那么else语句将不会被执行。

Continue

continue用来跳过此次循环中的后面部分,继续执行下一次循环。

还是刚才的例子,我们使用continue进行改装:

In [68]: for n in range(2, 10):
 ...:  for x in range(2, n):
 ...:   if n % x == 0:
 ...:    print(n, 'equals', x, '*', n//x)
 ...:    continue
 ...:  else:
 ...:   print(n, 'is a prime number')
 ...:
2 is a prime number
3 is a prime number
4 equals 2 * 2
4 is a prime number
5 is a prime number
6 equals 2 * 3
6 equals 3 * 2
6 is a prime number
7 is a prime number
8 equals 2 * 4
8 equals 4 * 2
8 is a prime number
9 equals 3 * 3
9 is a prime number

可以看到,在continue中,else语句会一直执行。

Pass

pass表示的是什么都不做。是一个空的执行。

通常我们使用pass作为函数或条件子语句的占位符,表示具体的内容可以在未来进行填充。

可以在while中使用pass:

>>> while True:
...  pass # Busy-wait for keyboard interrupt (Ctrl+C)
...

可以在类中使用pass:

>>> class MyEmptyClass:
...  pass
...

可以在函数中使用pass:

>>> def initlog(*args):
...  pass # Remember to implement this!
...

以上就是Python中的流程控制详解的详细内容,更多关于Python中的流程控制的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python操作日期和时间的方法
Mar 11 Python
Python多进程编程技术实例分析
Sep 16 Python
python使用电子邮件模块smtplib的方法
Aug 28 Python
Python基于多线程实现抓取数据存入数据库的方法
Jun 22 Python
Python 输出时去掉列表元组外面的方括号与圆括号的方法
Dec 24 Python
Python静态类型检查新工具之pyright 使用指南
Apr 26 Python
python3利用Socket实现通信的方法示例
May 06 Python
使用python list 查找所有匹配元素的位置实例
Jun 11 Python
numpy.transpose()实现数组的转置例子
Dec 02 Python
python字符串替换re.sub()实例解析
Feb 09 Python
Python爬虫爬取杭州24时温度并展示操作示例
Mar 27 Python
Python进程的通信Queue、Pipe实例分析
Mar 30 Python
python爬取豆瓣电影排行榜(requests)的示例代码
Feb 18 #Python
python 爬取腾讯视频评论的实现步骤
Feb 18 #Python
Python之qq自动发消息的示例代码
Feb 18 #Python
Python对excel的基本操作方法
Feb 18 #Python
No module named ‘win32gui‘ 的解决方法(踩坑之旅)
Feb 18 #Python
Python操作Excel的学习笔记
Feb 18 #Python
手把手教你用Django执行原生SQL的方法
Feb 18 #Python
You might like
模仿OSO的论坛(五)
2006/10/09 PHP
PHP逐行输出(ob_flush与flush的组合)
2012/02/04 PHP
php更新mysql后获取影响的行数发生异常解决方法
2013/03/28 PHP
PHP 面向对象程序设计(oop)学习笔记(三) - 单例模式和工厂模式
2014/06/12 PHP
PHP扩展CURL的用法详解
2014/06/20 PHP
使用PHPExcel操作Excel用法实例分析
2015/03/26 PHP
100行PHP代码实现socks5代理服务器
2016/04/28 PHP
php+redis实现商城秒杀功能
2020/11/19 PHP
JavaScript设置FieldSet展开与收缩
2009/05/15 Javascript
jquery得到font-size属性值实现代码
2013/09/30 Javascript
wap浏览自动跳转到wap页面的js代码
2014/05/17 Javascript
JS实现OCX控件的事件响应示例
2014/09/17 Javascript
JavaScript使用Math.Min返回两个数中较小数的方法
2015/04/06 Javascript
超漂亮的jQuery图片轮播特效
2015/11/24 Javascript
angularjs 中$apply,$digest,$watch详解
2016/10/13 Javascript
谈谈Vue.js——vue-resource全攻略
2017/01/16 Javascript
微信小程序教程系列之视图层的条件渲染(10)
2017/04/19 Javascript
Nuxt.js开启SSR渲染的教程详解
2018/11/30 Javascript
vue-quill-editor的使用及个性化定制操作
2020/08/04 Javascript
[42:32]Secret vs Optic 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
[01:10:03]OG vs EG 2018国际邀请赛淘汰赛BO3 第三场 8.23
2018/08/24 DOTA
Python扫描IP段查看指定端口是否开放的方法
2015/06/09 Python
Python实现树莓派WiFi断线自动重连的实例代码
2017/03/16 Python
使用python遍历指定城市的一周气温
2017/03/31 Python
python利用正则表达式排除集合中字符的功能示例
2017/10/10 Python
教你使用python实现微信每天给女朋友说晚安
2018/03/23 Python
python时间序列按频率生成日期的方法
2019/05/14 Python
django迁移数据库错误问题解决
2019/07/29 Python
pytorch载入预训练模型后,实现训练指定层
2020/01/06 Python
日本热销NO.1胶原蛋白冻:Aishitoto爱希特多
2019/06/20 全球购物
大学学习生活感言
2014/01/18 职场文书
见习期自我鉴定
2014/01/31 职场文书
公益广告标语
2014/06/19 职场文书
学校实习推荐信
2015/03/27 职场文书
数据库之SQL技巧整理案例
2021/07/07 SQL Server
Mysql排查分析慢sql之explain实战案例
2022/04/19 MySQL