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 matplotlib中文显示参数设置解析
Dec 15 Python
详解用Python处理HTML转义字符的5种方式
Dec 27 Python
Python实现购物评论文本情感分析操作【基于中文文本挖掘库snownlp】
Aug 07 Python
Python3安装psycopy2以及遇到问题解决方法
Jul 03 Python
python 梯度法求解函数极值的实例
Jul 10 Python
浅析PEP570新语法: 只接受位置参数
Oct 15 Python
python实现交并比IOU教程
Apr 16 Python
快速解决jupyter notebook启动需要密码的问题
Apr 21 Python
Python接口测试结果集实现封装比较
May 01 Python
python 获取字典特定值对应的键的实现
Sep 29 Python
Python爬虫获取op.gg英雄联盟英雄对位胜率的源码
Jan 29 Python
Python中使用tkFileDialog实现文件选择、保存和路径选择
May 20 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 实现多服务器共享 SESSION 数据
2009/08/15 PHP
php empty()与isset()区别的详细介绍
2013/06/17 PHP
部署PHP项目应该注意的几点事项分享
2013/12/20 PHP
ThinkPHP惯例配置文件详解
2014/07/14 PHP
简单实用的网站PHP缓存类实例
2014/07/18 PHP
PHP实现类似题库抽题效果
2018/08/16 PHP
详解PHP的抽象类和抽象方法以及接口总结
2019/03/15 PHP
基于Unit PNG Fix.js有时候在ie6下不正常的解决办法
2013/06/26 Javascript
js获取时间(本周、本季度、本月..)
2013/11/22 Javascript
JS获取当前网页大小以及屏幕分辨率等
2014/09/05 Javascript
JS传值出现中文参数乱码的解决方法
2016/06/30 Javascript
浅谈JavaScript 函数参数传递到底是值传递还是引用传递
2016/08/23 Javascript
nodejs的压缩文件模块archiver用法示例
2017/01/18 NodeJs
Node.js使用NodeMailer发送邮件实例代码
2017/03/06 Javascript
js遍历json对象所有key及根据动态key获取值的方法(必看)
2017/03/09 Javascript
Vue2.0利用vue-resource上传文件到七牛的实例代码
2017/07/28 Javascript
利用纯JS实现像素逐渐显示的方法示例
2017/08/14 Javascript
JS中获取 DOM 元素的绝对位置实例详解
2018/04/23 Javascript
微信小程序云开发实现云数据库读写权限
2019/05/17 Javascript
javascript-hashchange事件和历史状态管理实例分析
2020/04/18 Javascript
[15:46]教你分分钟做大人——沙王
2015/03/11 DOTA
python中bisect模块用法实例
2014/09/25 Python
Python基础之条件控制操作示例【if语句】
2019/03/23 Python
python实现微信定时每天和女友发送消息
2019/04/29 Python
解决python中的幂函数、指数函数问题
2019/11/25 Python
用python 绘制茎叶图和复合饼图
2021/02/26 Python
HTML5 video 事件应用示例
2014/09/11 HTML / CSS
使用html5 canvas 画时钟代码实例分享
2015/11/11 HTML / CSS
什么是接口(Interface)?
2013/02/01 面试题
和睦家庭事迹
2014/05/14 职场文书
会计专业毕业生求职信
2014/07/04 职场文书
综合素质自我评价怎么写
2014/09/14 职场文书
2014年销售内勤工作总结
2014/12/01 职场文书
博士导师推荐信
2015/03/25 职场文书
会议主持词结束语
2015/07/03 职场文书
网络研修随笔感言
2015/11/18 职场文书