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利用正则表达式提取字符串
Dec 08 Python
python使用正则表达式的search()函数实现指定位置搜索功能
Nov 10 Python
Windows下anaconda安装第三方包的方法小结(tensorflow、gensim为例)
Apr 05 Python
python 读取txt,json和hdf5文件的实例
Jun 05 Python
python递归函数绘制分形树的方法
Jun 22 Python
Python实现动态添加属性和方法操作示例
Jul 25 Python
判断python字典中key是否存在的两种方法
Aug 10 Python
Python递归函数实例讲解
Feb 27 Python
python实现动态数组的示例代码
Jul 15 Python
使用pip安装python库的多种方式
Jul 31 Python
python找出列表中大于某个阈值的数据段示例
Nov 24 Python
python实现ping命令小程序
Dec 28 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.MVC的模板标签系统(二)
2006/09/05 PHP
PHP中HTTP方式下的Gzip压缩传输方法举偶
2007/02/15 PHP
PHP转换文本框内容为HTML格式的方法
2016/07/20 PHP
基于jQuery的消息提示插件 DivAlert之旅(二)
2010/04/01 Javascript
JQuery,Extjs,YUI,Prototype,Dojo 等JS框架的区别和应用场景简述
2010/04/15 Javascript
JavaScript 设计模式 安全沙箱模式
2010/09/24 Javascript
nodejs 后缀名判断限制代码
2011/03/31 NodeJs
如何书写高质量jQuery代码(使用jquery性能问题)
2014/06/30 Javascript
js查找节点的方法小结
2015/01/13 Javascript
浅析JavaScript中var that=this
2017/02/17 Javascript
微信小程序实现星星评价效果
2018/11/02 Javascript
微信小程序自定义弹窗wcPop插件
2018/11/19 Javascript
vue中v-for通过动态绑定class实现触发效果
2018/12/06 Javascript
vue响应式系统之observe、watcher、dep的源码解析
2019/04/09 Javascript
JavaScript页面加载事件实例讲解
2019/09/01 Javascript
在vue中使用jsx语法的使用方法
2019/09/30 Javascript
jQuery实现轮播图效果
2019/11/26 jQuery
如何使用webpack打包一个库library的方法步骤
2019/12/18 Javascript
9种python web 程序的部署方式小结
2014/06/30 Python
python 动态加载的实现方法
2017/12/22 Python
python requests 测试代理ip是否生效
2018/07/25 Python
python遍历文件夹找出文件夹后缀为py的文件方法
2018/10/21 Python
对python opencv 添加文字 cv2.putText 的各参数介绍
2018/12/05 Python
python实现创建新列表和新字典,并使元素及键值对全部变成小写
2019/01/15 Python
python引用(import)某个模块提示没找到对应模块的解决方法
2019/01/19 Python
在Python中实现函数重载的示例代码
2019/12/12 Python
Python使用PyQt5/PySide2编写一个极简的音乐播放器功能
2020/02/07 Python
keras slice layer 层实现方式
2020/06/11 Python
Python Django路径配置实现过程解析
2020/11/05 Python
奥巴马当选演讲稿
2014/09/10 职场文书
村党支部书记个人对照材料汇报
2014/10/26 职场文书
个人贷款收入证明
2014/10/26 职场文书
先进党支部事迹材料
2014/12/24 职场文书
十佳少年事迹材料
2014/12/25 职场文书
教师培训学习心得体会
2016/01/21 职场文书
工作汇报材料难写?方法都在这里了!
2019/07/01 职场文书