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 装饰器深入理解
Mar 16 Python
Django数据库操作的实例(增删改查)
Sep 04 Python
Python+Selenium+PIL+Tesseract自动识别验证码进行一键登录
Sep 20 Python
python的unittest测试类代码实例
Dec 07 Python
对pandas的算术运算和数据对齐实例详解
Dec 22 Python
Python使用Shelve保存对象方法总结
Jan 28 Python
python字符串分割及字符串的一些常规方法
Jul 24 Python
django多对多表的创建,级联删除及手动创建第三张表
Jul 25 Python
opencv-python 提取sift特征并匹配的实例
Dec 09 Python
解决json中ensure_ascii=False的问题
Apr 03 Python
python实现控制台输出彩色字体
Apr 05 Python
Python生成随机验证码代码实例解析
Jun 09 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绘制在图片上的正余弦曲线
2013/06/08 PHP
IIS+fastcgi下PHP运行超时问题的解决办法详解
2013/06/20 PHP
php对二维数组按指定键值key排序示例代码
2013/11/26 PHP
php生成txt文件标题及内容的方法
2014/01/16 PHP
php结合安卓客户端实现查询交互实例
2015/05/05 PHP
Zend Framework教程之MVC框架的Controller用法分析
2016/03/07 PHP
使用laravel和ECharts实现折线图效果的例子
2019/10/09 PHP
BOOM vs RR BO5 第一场 2.14
2021/03/10 DOTA
JS 用6N±1法求素数 实例教程
2009/10/20 Javascript
Javascript 构造函数,公有,私有特权和静态成员定义方法
2009/11/30 Javascript
利用jquery操作select下拉列表框的代码
2010/06/04 Javascript
js 浏览本地文件夹系统示例代码
2013/10/24 Javascript
Javascript刷新窗口方法小结
2015/10/21 Javascript
bootstrap table方法之expandRow-collapseRow展开或关闭当前行数据
2020/08/09 Javascript
微信小程序中的canvas 文字断行和省略号显示功能的处理方法
2018/11/14 Javascript
详解angularjs4部署文件过大解决过程
2018/12/05 Javascript
微信小程序云开发之数据库操作
2019/05/18 Javascript
javascript设计模式 ? 抽象工厂模式原理与应用实例分析
2020/04/09 Javascript
浅谈vue中document.getElementById()拿到的是原值的问题
2020/07/26 Javascript
vant中的toast轻提示实现代码
2020/11/04 Javascript
[02:53]2018年度DOTA2最佳战队-完美盛典
2018/12/17 DOTA
python3.3实现乘法表示例
2014/02/07 Python
Python程序员鲜为人知但你应该知道的17个问题
2014/06/04 Python
在Python中使用base64模块处理字符编码的教程
2015/04/28 Python
Python捕捉和模拟鼠标事件的方法
2015/06/03 Python
Python进阶之使用selenium爬取淘宝商品信息功能示例
2019/09/16 Python
linux 下selenium chrome使用详解
2020/04/02 Python
python进行二次方程式计算的实例讲解
2020/12/06 Python
CSS3弹性盒模型开发笔记(一)
2016/04/26 HTML / CSS
英国最大的LED专业零售商:Led Hut
2018/03/16 全球购物
2014自荐信的写作技巧
2014/01/28 职场文书
大学生活自我评价
2014/04/09 职场文书
学生干部培训方案
2014/06/12 职场文书
大学生村官工作总结2015
2015/04/09 职场文书
sql时间段切分实现每隔x分钟出一份高速门架车流量
2022/02/28 SQL Server
CSS控制继承中的height能变为可继承吗
2022/06/10 HTML / CSS