【Python】学习笔记11

简介: 【Python】学习笔记11

【Python】学习笔记11

无限循环


由条件控制的循环运行方式

while   <条件>:

<语句块>

反复执行语句块,直到条件不满足时结束。

>>a=3;
>>while a>0:
a=a-1;
print(a)

结果是

2
1
0

如果把代码做小小的修改

>>a=3;
>>while a>0:
a=a+1;
print(a)

这段代码执行会输出4,5,6…..

程序会一直运行下去。

       当发现程序不会退出时,我们会用Ctrl+C来结束执行。

循环控制保留字


break:跳出并结束整个循环,执行循环后的语句。

continue:结束当次循环,继续执行后续次数循环。

image.png

程序遇到T时结束本次循环,继续循环,

输出结果为PYHON,

把T给去掉了。

看下面例子

image.png

程序遇到T时,结束循环,执行循环后面的语句,输出结果为PY,把T之后的去掉了。

continue是结束当次循环,继续遍历循环;break是结束整个循环,跳出循环后,执行循环后面的语句。

那么问题来了:如果有两层,或者多层循环,break该怎么办呢?


看下面的例子,判断S是否为空字符串,如果不为空,逐个输出字符串中的字符,然后是对字符串进行切片操作。输出结果如图,形成了两层循环。

image.png


修改一下

image.png

       不知道聪明的你是否也发现这个输出结果的不同之处了?最开始,字符串是PYTHON,使用内层循环for来遍历字符串PYTHON每一个字符,当遇到字符T的时候,break会跳出当次循环,仅仅跳出for循环,break仅能跳出当前最内层循环,跳出for循环之后呢?

       因为外面还有while循环,所以会继续执行while循环。所以这串代码的意思是我们遍历字符串,遇到T停止遍历,并对字符串进行切片,继续遍历,所以 最后的结果就是PYPYPYPYPYP.。(这个老哥很喜欢py啊,好可怕)

       所以请大家千万要记住,一个break就是仅跳出当前的最内层循环,如果有多层循环嵌套时,只跳出内层,外层循环依然有效,break一般遵循就近原则。

循环的高级用法

       我们已经学会使用(for  in),while,来进行遍历循环与无限循环,其实Python还提供循环的扩展用法,就是循环与else的搭配,我们知道else保留字是用来做条件判断的,但是它却可以和我的循环结成组合。

使用方法如下所示:

for   <循环变量> in <遍历结构>:                      <语句块1>
else:
        <语句块2>
while   <条件>:
        <语句块>
else:
        <语句块2>

       无论是for还是while循环,当循环没有被break语句退出时,执行else语句。

       简单说,当循环正常执行退出时(循环体中执行continue时不影响),我们会奖励它再执行一段else语句。

image.png

       在代码中,没有break语句,所以循环中一定不会遇到break,所以循环退出后,会执行else后面的代码。

image.png

       因为有break语句,循环退出,并不会执行else后面的语句块。

       所以通过else拓展,我们能够知道,循环中有没有被break结束,这样对于程序逻辑的设计,将变得更加简洁。

下面我们对循环结构进行小结:

for...in... 遍历循环:计数,字符串,列表,文件。。。

while无限循环。。。

continue break保留字:退出当前循环层次

循环else的高级用法与break有关

目录
相关文章
|
2月前
|
网络协议 Java Linux
PyAV学习笔记(一):PyAV简介、安装、基础操作、python获取RTSP(海康)的各种时间戳(rtp、dts、pts)
本文介绍了PyAV库,它是FFmpeg的Python绑定,提供了底层库的全部功能和控制。文章详细讲解了PyAV的安装过程,包括在Windows、Linux和ARM平台上的安装步骤,以及安装中可能遇到的错误和解决方法。此外,还解释了时间戳的概念,包括RTP、NTP、PTS和DTS,并提供了Python代码示例,展示如何获取RTSP流中的各种时间戳。最后,文章还提供了一些附录,包括Python通过NTP同步获取时间的方法和使用PyAV访问网络视频流的技巧。
423 4
PyAV学习笔记(一):PyAV简介、安装、基础操作、python获取RTSP(海康)的各种时间戳(rtp、dts、pts)
|
2月前
|
Python
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
使用Python的socket库实现客户端到服务器端的图片传输,包括客户端和服务器端的代码实现,以及传输结果的展示。
165 3
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
|
2月前
|
JSON 数据格式 Python
Socket学习笔记(一):python通过socket实现客户端到服务器端的文件传输
本文介绍了如何使用Python的socket模块实现客户端到服务器端的文件传输,包括客户端发送文件信息和内容,服务器端接收并保存文件的完整过程。
174 1
Socket学习笔记(一):python通过socket实现客户端到服务器端的文件传输
|
2月前
|
关系型数据库 MySQL 数据库
Mysql学习笔记(四):Python与Mysql交互--实现增删改查
如何使用Python与MySQL数据库进行交互,实现增删改查等基本操作的教程。
73 1
|
2月前
|
Ubuntu Linux Python
Ubuntu学习笔记(六):ubuntu切换Anaconda和系统自带Python
本文介绍了在Ubuntu系统中切换Anaconda和系统自带Python的方法。方法1涉及编辑~/.bashrc和/etc/profile文件,更新Anaconda的路径。方法2提供了详细的步骤指导,帮助用户在Anaconda和系统自带Python之间进行切换。
113 1
|
2月前
|
索引 Python
Python学习笔记编程小哥令狐~持续更新、、、(上)
Python学习笔记编程小哥令狐~持续更新、、、(上)
53 2
|
2月前
|
存储 Python
Python学习笔记编程小哥令狐~持续更新、、、 (下)
Python学习笔记编程小哥令狐~持续更新、、、 (下)
35 1
|
2月前
|
存储 Python
【免费分享编程笔记】Python学习笔记(二)
【免费分享编程笔记】Python学习笔记(二)
48 0
【免费分享编程笔记】Python学习笔记(二)
|
2月前
|
Java 编译器 Go
Python学习笔记--- day01计算机基础和环境搭建(一)
Python学习笔记--- day01计算机基础和环境搭建(一)
47 2
|
2月前
|
程序员 编译器 Python
Python学习笔记--- day01计算机基础和环境搭建(二)
Python学习笔记--- day01计算机基础和环境搭建(二)
50 1
下一篇
DataWorks