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查询Mysql时返回字典结构的代码
Jun 18 Python
python中的set实现不重复的排序原理
Jan 24 Python
新年快乐! python实现绚烂的烟花绽放效果
Jan 30 Python
python多线程并发实例及其优化
Jun 27 Python
python pickle存储、读取大数据量列表、字典数据的方法
Jul 07 Python
关于Numpy数据类型对象(dtype)使用详解
Nov 27 Python
python3 字符串知识点学习笔记
Feb 08 Python
Django 设置多环境配置文件载入问题
Feb 25 Python
Python Socketserver实现FTP文件上传下载代码实例
Mar 27 Python
Python项目跨域问题解决方案
Jun 22 Python
Python 转移文件至云对象存储的方法
Feb 07 Python
python学习之使用Matplotlib画实时的动态折线图的示例代码
Feb 25 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删除数组元素示例分享
2014/02/17 PHP
PHP利用APC模块实现文件上传进度条的方法
2015/01/26 PHP
PHP实现指定字段的多维数组排序函数分享
2015/03/09 PHP
Yii2 加载css、js 载静态资源的方法
2017/03/10 PHP
微信开发之获取JSAPI TICKET
2017/07/07 PHP
laravel使用Faker数据填充的实现方法
2019/04/12 PHP
JQuery+JS实现仿百度搜索结果中关键字变色效果
2011/08/02 Javascript
深入理解JSON数据源格式
2014/01/10 Javascript
关于JavaScript命名空间的一些心得
2014/06/07 Javascript
浅谈javascript回调函数
2014/12/07 Javascript
JavaScript表格常用操作方法汇总
2015/04/15 Javascript
javascript中SetInterval与setTimeout的定时器用法
2015/08/24 Javascript
jquery实现表单验证简单实例演示
2015/11/23 Javascript
使用原生的javascript来实现轮播图
2017/02/24 Javascript
jquery中each循环的简单回滚操作
2017/05/05 jQuery
mui 打开新窗口的方式总结及注意事项
2017/08/20 Javascript
Cpage.js给组件绑定事件的实现代码
2017/08/31 Javascript
使用vue的transition完成滑动过渡的示例代码
2018/06/25 Javascript
使用jquery模拟a标签的click事件无法实现跳转的解决
2018/12/04 jQuery
spring+angular实现导出excel的实现代码
2019/02/27 Javascript
layer弹出层显示在top顶层的方法
2019/09/11 Javascript
[03:24]CDEC.Y赛前采访 努力备战2016国际邀请赛中国区预选赛
2016/06/25 DOTA
Python开发的HTTP库requests详解
2017/08/29 Python
python使用KNN算法识别手写数字
2019/04/25 Python
简单了解python高阶函数map/reduce
2019/06/28 Python
Python Web框架之Django框架文件上传功能详解
2019/08/16 Python
python修改文件内容的3种方法详解
2019/11/15 Python
python实现逆滤波与维纳滤波示例
2020/02/26 Python
解决pyinstaller 打包exe文件太大,用pipenv 缩小exe的问题
2020/07/13 Python
Python word文本自动化操作实现方法解析
2020/11/05 Python
CSS3改变浏览器滚动条样式
2019/01/04 HTML / CSS
Html5 Canvas动画基础碰撞检测的实现
2018/12/06 HTML / CSS
柯基袜:Corgi Socks
2017/01/26 全球购物
好习惯伴我成长演讲稿
2014/05/21 职场文书
青年文明号汇报材料
2014/12/23 职场文书
Mysql的Table doesn't exist问题及解决
2022/12/24 MySQL