[Python] 程序的循环结构

🎶博客主页:程序喵正在路上 的博客主页
🦋欢迎关注🖱点赞👍收藏🌟留言🐾
🦄本文由 程序喵正在路上 原创,CSDN首发!
💖系列专栏:Python学习
🌠首发时间:2022年4月29日
✅如果觉得博主的文章还不错的话,希望小伙伴们三连支持一下哦


要点:Python通过for、while等保留字提供遍历循环和无限循环的结构。

根据循环执行次数的确定性,循环可以分为确定次数循环和非确定次数循环。确定次数循环指循环体对循环次数有明确的定义,这类循环在 Python 中被称为 “遍历循环”,其中,循环次数采用遍历结构中的元素个数来体现,具体采用 for 语句实现。非确定次数循环指程序不确定循环体可能的执行次数,而通过条件判断是否继续执行循环体,Python 提供了根据判断条件执行程序的无限循环,采用 while 语句实现。

遍历循环:for 语句

Python 通过保留字 for 实现 “遍历循环”,基本使用方法如下:

for <循环变量> in <遍历结构>:
 <语句块>

之所以称为 “遍历循环”,是因为 for 语句的循环执行次数是根据遍历结构中元素个数确定的。遍历循环可以理解为从遍历结构中逐一提取元素 ,放在循环变量中,对于所提取的每个元素执行一次语句块。

遍历结构可以是字符串、文件、组合数据类型或 range() 函数等,常用的使用方式如下:

循环 N 次
for i in range(N):
 <语句块>

遍历文件 f 的每一行
for line in f:
 <语句块>

遍历字符串 s
for c in s:
 <语句块>

遍历列表 ls
for item in ls:
 <语句块>

遍历循环还有一种扩展模式,使用方法如下:
for <循环变量> in <遍历结构>:
 <语句块1>
else:
 <语句块2>

在这种扩展模式中,当 for 循环正常执行之后,程序会继续执行 else 语句中的内容。else 语句只在循环正常执行并结束后才执行,因此,可以在 <语句块2> 中放置判断循环执行情况的语句。后面我们会结合 continuebreak 语句进一步讲解 for 语句中 else 的用法。这里先给出一个小例子:

for s in "BIT":
    print("循环进行中:" + s)
else:
    s = "循环正常结束"
print(s)

程序运行结果如下:

循环进行中:B
循环进行中:I
循环进行中:T
循环正常结束

无限循环:while 语句

很多应用无法在执行之初确定遍历结构,这需要编程语言提供根据条件进行循环的语法,称为无限循环,又称条件循环。无限循环一直保持循环操作直到循环条件不满足才结束,不需要提前确定循环次数。

Python 通过保留字 while 实现无限循环,基本使用方法如下:

while <条件>:
 <语句块>

其中条件与 if 语句中的判断条件一样,结果为 TrueFalse

while 语义很简单,当条件判断为 True 时,循环体重复执行语句块中语句;当条件为 False 时,循环终止,执行与 while 同级别缩进的后续语句。

无限循环也有一种使用保留字 else 的扩展模式,使用方法如下:

while <条件>:
 <语句块 1>
else:
 <语句块 2>

在这种扩展模式中,当 while 循环正常执行后,程序会继续执行 else 语句中的内容。else 语句只在循环正常执行后才执行,因此,可以在语句块 2 中放置判断循环执行情况的语句,例如:

s = "BIT"
idx = 0
while idx < len(s):
    print("循环进行中:" + s[idx])
    idx += 1
else:
    s = "循环正常结束"
print(s)

运行结果如下:

循环进行中:B
循环进行中:I
循环进行中:T
循环正常结束

如果通过 while 实现-一个计数循环,需要在循环之前对计数器 idx 进行初始化,并在每次循环中对计数器 idx 进行累加。对比一下, 在 for 循环中循环变量逐一取自遍历结构,不需要程序维护计数器。

循环保留字:break 和 continue

循环结构有两个保留字: breakcontinue,它们用来辅助控制循环执行。

break 用来跳出最内层 forwhile 循环,脱离该循环后程序从循环代码后继续执行,例如:

for s in "BIT":
    for i in range(10):
        print(s,end=' ')
        if s == "I":
            break

程序执行后的结果如下:

B B B B B B B B B B I T T T T T T T T T T

其中,break 语句跳出了最内层 for 循环,但仍然继续执行外层循环。每个 break 语句只有能力跳出当前层次循环

continue 用来结束当前当次循环,即跳出循环体中下面尚未执行的语句,但不跳出当前循环。对于 while 循环,继续求解循环条件。而对于 for 循环,程序流程接着遍历循环列表。对比 continuebreak 语句,如下:

for s in "PYTHON":
    if s == "T":
        continue
    print(s,end=' ')

程序执行后的结果如下:

P Y H O N

for s in "PYTHON":
    if s == "T":
        break
    print(s,end=' ')

P Y

continue 语句和 break 语句的区别是,continue 语句只结束本次循环,而不终止整个循环的执行;而 break 语句则是结束整个循环过程,不再判断执行循环的条件是否成立。

for 循环和 while 循环中都存在一个 else 扩展用法。else 中的语句块只在一种条件下执行,即循环正常遍历了所有内容或由于条件不成立而结束循环,没有因为 breakreturn (函数返回中使用的保留字) 而退出。continue 保留字对 else 没有影响。看下面两个例子:

for s in "PYTHON":
    if s == "T":
        continue
    print(s,end=' ')
else:
    print("正常退出")

P Y H O N 正常退出

for s in "PYTHON":
    if s == "T":
        break
    print(s,end=' ')
else:
    print("正常退出")

P Y

🧸这次的分享就到这里啦,继续加油哦^^
🍭有出错的地方欢迎在评论区指出来,共同进步,谢谢啦

评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序喵正在路上

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值