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 xlsxwriter库生成图表的应用示例
Mar 16 Python
Python中pillow知识点学习
Apr 30 Python
《与孩子一起学编程》python自测题
May 27 Python
Python3中lambda表达式与函数式编程讲解
Jan 14 Python
详解python使用turtle库来画一朵花
Mar 21 Python
在linux下实现 python 监控usb设备信号
Jul 03 Python
Python Collatz序列实现过程解析
Oct 12 Python
Django 路由层URLconf的实现
Dec 30 Python
python使用Geany编辑器配置方法
Feb 21 Python
python函数中将变量名转换成字符串实例
May 11 Python
Python3爬虫中识别图形验证码的实例讲解
Jul 30 Python
python中如何打包用户自定义模块
Sep 23 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高手?学会“懒惰”的编程
2006/12/05 PHP
laravel 5.3 单用户登录简单实现方法
2019/10/14 PHP
详解将数据从Laravel传送到vue的四种方式
2019/10/16 PHP
js实现弹出窗口、页面变成灰色并不可操作的例子分享
2014/05/10 Javascript
JavaScript原生对象之String对象的属性和方法详解
2015/03/13 Javascript
JavaScript的RequireJS库入门指南
2015/07/01 Javascript
JavaScript实现点击自动选择TextArea文本的方法
2015/07/02 Javascript
浅谈js中子页面父页面方法 变量相互调用
2016/08/04 Javascript
jQuery实现的自适应焦点图效果完整实例
2016/08/24 Javascript
详解springmvc 接收json对象的两种方式
2016/12/06 Javascript
利用JS实现文字的聚合动画效果
2017/01/22 Javascript
原生js更改css样式的两种方式
2017/03/15 Javascript
JavaScript设置名字输入不合法的实现方法
2017/05/23 Javascript
JavaScript实现三级联动效果
2017/07/15 Javascript
Vue实现点击按钮复制文本内容的例子
2019/11/09 Javascript
关于vue3默认把所有onSomething当作v-on事件绑定的思考
2020/05/15 Javascript
Python 解析XML文件
2009/04/15 Python
Python+Socket实现基于UDP协议的局域网广播功能示例
2017/08/31 Python
Django 连接sql server数据库的方法
2018/06/30 Python
Python Flask框架扩展操作示例
2019/05/03 Python
python区块及区块链的开发详解
2019/07/03 Python
centos7之Python3.74安装教程
2019/08/15 Python
使用Python生成200个激活码的实现方法
2019/11/22 Python
python dict如何定义
2020/09/02 Python
Luxplus瑞典:香水和美容护理折扣
2018/01/28 全球购物
Stutterheim瑞典:瑞典高级外套时装品牌
2019/06/24 全球购物
教师岗位职责范本
2013/12/29 职场文书
文明礼仪事迹材料
2014/01/09 职场文书
单位未婚证明范本
2014/01/18 职场文书
小学教师师德演讲稿
2014/05/06 职场文书
广播体操口号
2014/06/18 职场文书
2014年学生会主席工作总结
2014/11/07 职场文书
党章学习心得体会2016
2016/01/14 职场文书
创业分两种人:那么哪些适合创业?,哪些适合不适合创业呢?
2019/08/23 职场文书
带你了解CSS基础知识,样式
2021/07/21 HTML / CSS
使用Ajax实现无刷新上传文件
2022/04/12 Javascript