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模拟登录验证码(代码简单)
Feb 06 Python
Python 专题二 条件语句和循环语句的基础知识
Mar 19 Python
python列表生成式与列表生成器的使用
Feb 23 Python
pandas对指定列进行填充的方法
Apr 11 Python
使用python将大量数据导出到Excel中的小技巧分享
Jun 14 Python
用什么库写 Python 命令行程序(示例代码详解)
Feb 20 Python
浅析python 定时拆分备份 nginx 日志的方法
Apr 27 Python
python中的错误如何查看
Jul 08 Python
Python getattr()函数使用方法代码实例
Aug 10 Python
python爬虫破解字体加密案例详解
Mar 02 Python
使用Selenium实现微博爬虫(预登录、展开全文、翻页)
Apr 13 Python
python中urllib包的网络请求教程
Apr 19 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
几种有用的变型 PHP中循环语句的用法介绍
2012/01/30 PHP
PHP判断是手机端还是PC端 PHP判断是否是微信浏览器
2017/03/15 PHP
PHP钩子实现方法解析
2019/05/21 PHP
Yii框架的路由配置方法分析
2019/09/09 PHP
JavaScript函数、方法、对象代码
2008/10/29 Javascript
JavaScript实现重置表单(reset)的方法
2015/04/02 Javascript
原创jQuery弹出层插件分享
2015/04/02 Javascript
js实现全国省份城市级联下拉菜单效果代码
2015/09/07 Javascript
html+js+highcharts绘制圆饼图表的简单实例
2016/08/04 Javascript
详谈js中window.location.search的用法和作用
2017/02/13 Javascript
React简单介绍
2017/05/24 Javascript
vue使用 better-scroll的参数和方法详解
2018/01/25 Javascript
详解js正则表达式验证时间格式xxxx-xx-xx形式
2018/02/09 Javascript
详解puppeteer使用代理
2018/12/27 Javascript
Vue动态创建注册component的实例代码
2019/06/14 Javascript
vue2路由基本用法实例分析
2020/03/06 Javascript
javascript前端实现多视频上传
2020/12/13 Javascript
python获取从命令行输入数字的方法
2015/04/29 Python
python opencv旋转图像(保持图像不被裁减)
2018/07/26 Python
python带参数打包exe及调用方式
2019/12/21 Python
Python HTTP下载文件并显示下载进度条功能的实现
2020/04/02 Python
CSS3 制作旋转的大风车(充满童年回忆)
2013/01/30 HTML / CSS
西班牙三叶草药房:Farmacias Trébol
2019/05/03 全球购物
卫校中专生个人自我评价
2013/09/19 职场文书
生物制药专业求职信
2014/03/11 职场文书
庆元旦演讲稿
2014/09/15 职场文书
教师听课评语大全
2014/12/31 职场文书
聚众斗殴罪辩护词
2015/05/21 职场文书
法律意见书范文
2015/06/04 职场文书
一百条裙子读书笔记
2015/07/01 职场文书
婚礼家长致辞
2015/07/27 职场文书
学习焦裕禄先进事迹心得体会
2016/01/23 职场文书
使用Redis实现秒杀功能的简单方法
2021/05/08 Redis
解决Pytorch修改预训练模型时遇到key不匹配的情况
2021/06/05 Python
一次MySQL启动导致的事故实战记录
2021/09/15 MySQL
python DataFrame中stack()方法、unstack()方法和pivot()方法浅析
2022/04/06 Python