循环结构
循环结构,顾名思义,就是反复做同一件事情。
循环结构可分为while循环和for-in循环。
一、while循环
(一)语法结构
while 条件表达式:
条件执行体(循环体)
(二)流程图示
补充:选择结构if与循环结构while的区别
-
if是判断一次,条件为True,执行一次
-
while是判断N+1次,条件为True,执行N次
(三)程序图示
1. if图示:
2. while图示:
(四)while循环的执行流程
四步循环法:
-
初始化变量
-
条件判断
-
条件执行体(循环体)
-
改变变量
总结:
初始化的变量与条件判断的变量以及改变的变量为同一个
示例一:计算0到50之间数的累加和
sum=0#用于存储累加和
#1.初始化变量为0
a=0
#2.条件判断
while a<51:#或a<=50
#条件执行体(循环体)
sum+=a
#改变变量
a+=1
print('和为',sum)
程序图示:
示例二:计算1到100之间偶数之和
sum=0#用于存储偶数和
#1.初始化变量
a=1
#2.条件判断
while a<=100:#或a<101
#3.条件执行体(循环体)
if a%2==0:
sum+=a
#改变变量
a+=1
print('和为',sum)
补充:
如果我们计算奇数和,可以对条件执行体进行如下修改,其余内容不变:
if a%2: #奇数和2取余,结果为1,其布尔值为True
将条件执行体改变,变回求偶数和,修改如下:
if not bool(a%2): #偶数和2取余,结果为0,其布尔值为False,取反则为True
二、for-in循环
(一)、中文语义
-
在可迭代对象中,依次取出一个值,赋给自定义变量
-
in表达从(字符串、序列等)中依次取值,又称为遍历
-
for-in遍历的对象必须为可迭代对象
-
简称 for 循环
(二)语法结构
for 自定义的变量 in 可迭代对象:
循环体
(三)流程图示
(四)程序图示
- 在字符串
love
中依次取值,赋值给idol
- 在序列中依次取值,赋值给
L
注:循环体内不需要访问自定义变量,可以将自定义变量替代为下划线(用作循环次数)
下划线(五)练习
1. 计算1到100之间的偶数和
sum=o#用于存储偶数和
for do in range(1,101):
if do%2==0:
sum+=do
print('1到100间偶数和为:',sum)
2. 输出100到999之间的水仙花数
水仙花数:个位数的三次方加十位数的三次方加百位数的三次方,和为该数
三、流程控制语句break
(一)中文语义
用于结束循环结构,通常与分支结构if一起使用。
当满足某一条件时,跳出该循环,也称为非正常结束循环
(二)流程图示
(三)程序图示
示例:ATM机取款,有三次输入密码的机会
如果我们第一次输入正确,那么下面的两次循环就不会执行。
程序图示:
1. for循环示例:
(1)密码正确情况:
符合条件,输出“密码正确”,退出for循环。
(2)密码错误情况:
条件不符合,输出密码错误,继续执行,共执行三次。
2. while循环示例:
(1)密码正确情况:
(2)密码错误情况:
四、流程控制语句continue
(一)中文语义
用于结束当前循环,进入下一次循环,通常与分支结构中的if一起使用。
(二)流程图示
(三)程序图示
要求:输出1到50之间所有5的倍数
实现途径一:
实现途径二:使用continue
五、else语句
(一)使用情况
(二)程序图示
ATM即取款:最多三次输入密码机会
for-in循环图示:
- 密码输入正确:
- 密码三次输入错误:
while循环图示:
- 密码输入正确:
- 密码输入错误:
六、嵌套循环
(一)中文语义
循环结构中又嵌套了另外的完整的循环结构,其中,内层循环作为外层循环的循环执行体。
(二)流程图示
(三)实例
练习一:输出三行四列的矩形
练习二:输出边长为九行的直角三角形
练习三:输出九九乘法表:
七、二层循环中的break和continue
(一)中文语义
二层循环中的break和continue用于控制本层循环
如果在内层循环遇到break,退出内层循环,不会影响外层循环的进行
如果在内层循环遇到continue,继续执行内层循环,对外层循环没有影响
(二)流程图示
(三)程序图示
1. break:
第一次执行时:
i=0
,j=1
,j%2
不等于0,输出j
,即1
i=0
,j=2
,j%2
等于0,break,退出内循环
第二次执行时:
i=1
,j=1
,j%2
不等于0,输出j
,即1
i=1
,j=2
,j%2等于0,break,退出内循环
以此类推,内层循环只执行一次,但不会影响外层循环。
2. continue:
第一次执行时:
i=0,j=1,j%2不等于0,输出j,即1
i=0,j=2,j%2等于0,continue
i=0,j=3,j%2不等于0,输出j,即3
i=0,j=4,j%2等于0,continue
i=0,j=5,j%2不等于0,输出j,即5
......
以此类推,执行五次。
视频来源:哔哩哔哩马士兵Python教学
网友评论