Python编程中特有的循环语句及其特点

开发 前端
Python编程的追求的就是简单而优雅,既无所不能,又接近人的自然表达模式。毋庸置疑,其简洁而不简单的魔力吸引力大量的拥趸。

Python编程的追求的就是简单而优雅,既无所不能,又接近人的自然表达模式。毋庸置疑,其简洁而不简单的魔力吸引力大量的拥趸。即便其语法和内置函数等,如若能简写或缩写的,那就绝不会完整地写出来。如果你习惯了这种写法,再去看看“Spring式”长命名,你简直都怀疑自己当初为什么要敲那么多次键盘——难道是为了锻炼身体?

有点跑远了,回到主题上来。我们知道,标准的代码执行流程的控制语句,就这么几种:顺序执行、条件执行、循环执行以及这几种的组合或/和嵌套。各类编程语(如C/C++、Java、JavaScript、PHP、go等)在具体语法上实现各有差异,但基本雷同:if-else结构、while结构、for结构等。

这里要说的是Python的循环结构语法的常规拓展模式,以while为例,其常规语法结构如下:

while condition:
#循环体
pass

这是典型的使用形式。其拓展结构如下:

while conditon:
#循环体
pass
else:
#while循环体执行完
pass

这种while-else结构与if-else结构不同之处在于if结构下只能执行其中的一种情况(满足条件的),而while结构通常两部分都会执行的。示例如下:

counter =0
while counter<5:
counter+=1
print(f"counter={counter}")
else:
print(f"while结束了,进入else部分:当前counter={counter}")

运行上面的代码,输出结果如下:

counter=1

counter=2

counter=3

counter=4

counter=5

while结束了,进入else部分:当前counter=5

这个代码没啥故事,也容易理解。但我换一种形式再看看效果:

counter =0
while True:
counter+=1
print(f"counter={counter}")
if counter>=5:
break
else:
print(f"while结束,else部分...,counter={counter}")

运行程序,输出类似如下:

counter=1

counter=2

counter=3

counter=4

counter=5

完犊子了,else部分不执行了……

当然,Python的for-else结构也一样,这里就不举例了,有兴趣的自己试试。这里我想说的是,在Python的“循环-else”结构中,如果使用了break提出循环,它就跳出了整个循环结构,而循环所带的else部分也是整个循环的一部分。所以,想在循环体工作结束后再干点扫尾工作,那一定注意不要用break跳出。

当初我在给学生介绍这个结构时,说这个语法貌似没有很鸡肋。你Python不是追求简洁吗,为while/for添个else,没有它会死吗?你想在else里干的事情,不用else也一样能干。

后来我遵循Python的“人性化”指导哲学又想了想:这就像在饭店里吃饭,正常吃完结账(正常事情),出去时顺带在饭店门口抓把糖倒杯水(扫尾工作);但如果你吃饭时吃出个异物来,不能继续愉快就餐了走了(非正常终止-break了),哪还有心情喝水吃糖?——可能就是这个意思吧 ^_& 。

Python编程还是很有意思的,但更多在于用Python去解决实际问题。所以Python语法很容易学,但要能灵活的使用Python去解决问题还有很多库和框架需要学习。

今天就写这些了,其它Python特异的编程特殊实现,下次再写。


责任编辑:华轩 来源: 今日头条
相关推荐

2011-10-31 14:53:23

Dart

2012-12-27 10:22:00

思科路由器网络协议

2022-06-21 14:17:19

安全零信任信息安全

2021-08-11 09:00:30

Python基础循环

2010-10-08 14:54:22

JavaScript特

2010-06-21 09:39:31

anacron是什么

2010-03-09 14:10:13

Python循环语句

2011-03-31 16:01:07

Access

2023-06-12 15:33:52

Scalafor循环语句

2010-09-09 16:34:19

SQL循环while

2020-12-11 05:57:01

Python循环语句代码

2010-06-23 14:37:57

Linux Bash命

2010-09-10 14:33:32

SQL循环语句

2010-03-09 14:00:20

Python循环语句

2024-10-16 09:34:50

2010-09-08 16:17:37

SQL循环语句

2023-01-31 08:44:50

SQL语句查询

2024-06-12 12:59:16

2011-09-01 13:08:16

JQuery Mobi事件方法

2021-07-02 14:25:40

AI 小说人工智能
点赞
收藏

51CTO技术栈公众号