流程控制之循环结构
一、什么是循环结构?
循环结构是指在程序中需要反复执行某个功能而设置的一种程序结构。
二、常见的循环结构
①当型循环:先判断所给条件是否成立,若成立,则执行循环体;再次判断条件是否成立;若成立,则又执行循环体,若此反复,直到某一次条件不成立时为止。
②直到型循环:先执行循环体,再判断所给条件是否成立,若条件不成立,则再执行循环体,如此反复,直到条件成立,该循环过程结束。
三、循环结构语句
1. while循环
基本语法结构:
while 条件:
条件成立之后执行的子代码(循环体代码)
1)先判断条件是否成立
2)如果成立则执行循环体代码
3)循环体代码执行完毕后再次回到条件判断处,判断条件是否成立
4)如果成立,则继续执行循环体代码
5)按照上述规律依次执行,直到条件不成立才会结束循环体代码的执行
举例:
while true: print('Hello world')
"Hello world"会一直打印下去。
思考:下列代码中,‘该吃饭了’语句是否会执行?
While true: print('Hello world') print('该吃饭了')
‘该吃饭了’不会被执行,因为条件成立时就会执行打印”Hello world“,之后回到条件,条件成立继续打印”Hello world“,一直循环下去。
如何让”该吃饭了“这条代码被执行?条件不要写死,我们来看下面的代码:
count = 1 while count < 5: print('hello world') count =+1 print('该吃饭了')
当count < 5时,会执行并列循环体print 'Hello world'和print count(count = count + 1) ,当count < 4时,条件都为True,会循环执行此命令,当count = 5时,条件变为False,执行下一条命令,print '该吃饭了'。 以下为流程图:
再看下面的例子:
循环打印1-10,遇到4直接结束循环
count = 1 while count < 11: if count ==4: break #直接结束break所在的循环 print(count) count = count + 1
如果把break换一个位置,会出现什么样的效果?
count = 1 while count < 11: break #直接结束while所在的循环体,不管while的级别下还有多少行代码 if count == 4: break print(count) count +=1
循环打印1-10,遇到4直接跳过
count = 1 while count < 11: if count == 4: count += 1 continue # 直接结束本次循环,回到条件判断处开始下一次循环 print(count) count +=1
可以通过break和countion改变之前的循环,break与continue的区别:
break # 强行结束循环体
while循环体代码一旦执行到break会直接结束循环
continue # 直接跳到条件判断处
while循环体代码一旦执行到continue会结束本次循环,重新回到条件判断处,开始下一次循环
2. While…else…循环
while 条件表达式 : 代码块1 改变计数器的值 else : 代码块2
这个格式比原来基本的while格式读了一个else语句,器质性流程也多了一步流程,即当while循环体正常执行完后执行else代码块中的内容,当while循环体被break强制结束,则不执行else代码块中的内容。
# while循环补充说明
( 1)死循环
一旦执行,CPU功耗会急速上升,直到系统采取紧急措施。
死循环举例:
count = 10 while true: count *= 2
尽量不要让CPU长时间不间断运算。
(2) 嵌套及全局标志位
运行结果如下:
如何结束内层小循环:
运行结果如下:
强调:一个break只能结束它所在的那一层循环。
如果要把外层循环也结束,应该怎么办呢?
运行结果如下:
强调:有几个while的嵌套 想一次性结束 就应该写几个break。
如果不想反复写break,可以运用全局标志位。
运行结果如下:
3. for循环
for循环能够做到的事情while都可以做到,只不过for循环在一些场景下使用更简单
主要场景:循环获取存储多个数据的数据内部数据值
实际案例:
name_list = ['jason', 'kevin', 'tony', 'oscar']
count = 0
while count < 4:
print(name_list[count])
count += 1
for i in name_list:
print(i)
运行结果:
i与列表里的每一个数据值依次临时绑定,取出列表里绑定的数据值,绑定只在此循环运行的时候生效,一旦此循环体结束,立马断开与此数据的绑定,再绑定下一个数据值,继续运行,依次取出每一个数据值。
基本语法结构:
for 变量名 in 待遍历的数据:
for循环体代码
for循环特点:
1.擅长遍历取值
2.不需要结束条件,自动结束(遍历完)
3. for循环主要遍历的数据类型有(常见有:字符串、列表、元组、字典、集合)
* 不同数据类型的for循环遍历出来的数据结果不一样
几种特殊数据的for循环:
(1)字符串的for循环:遍历字符串的结果是单个的字符
info = 'hello world' for i in info: print(i) #单个单个字符
运行结果:
(2)字典的for循环:只有键参与遍历,值不参与
d = {'username': 'jason', 'password': 123} for i in d: print(i) # 只有键参与遍历
运行结果:
for循环语法结构中的变量名如何命名
1.见名知意
2.如果遍历出来的数据值没有具体的含义,可以使用常用的:i, j, k, item, v
其他:
(1) for循环体代码中如果执行到break也会直接结束整个for循环
for i in [11, 22, 33]: if i == 22: break print(i)
运行结果:
(2)for循环体代码中如果执行到continue也会结束当前循环直接开始下一次循环
for i in [11, 22, 33]: if i == 22: continue print(i)
运行结果:
(3)for也可以与else结合在一起用
for 临时变量 in 待遍历的数据 : 循环代码体 else: 代码块2
来看看下面两种情况:
①
运行结果:
for循环体代码被break强制结束,不会运行else.
②
运行结果:
for循环体正常执行完后执行else代码块中的内容。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人