当前课程知识点:计算思维与人工智能基础 > 第三部分:python基础 > 第五章:程序控制结构 > 5.3循环结构
大家好
下面我们给大家介绍循环结构
Python语句的循环结构有两种类型
一种是for循环
一种是while循环
那for循环时循环变量
in
遍历结构
然后是循环的语句体
while循环时
while
判断条件
条件满足执行语句块
那直到条件不满足
跳出循环的语句块
首先我们来看一下for循环这段代码
for
i
in range
1,4
那range是我们取值的范围是左闭右开又的原则
也就是说
1,4是他取的是1,2,3
print i
i的平方二i的立方
所以他输出的结果是1
1的平方
1的立方
2
2的平方
2的立方
以及3
3的平方和3的立方
3的平方和3的立方
我们再看右边这段代码
求1到100的和
那我们这个for循环怎么设计呢
for i in range
初值到终值加1这样的设计
那么n呢输入1
m就什么
100
所以这个range是1到101
那么在求和的时候呢
我们总是用第一次S0加上第一个i值
就是0+1赋给s
那么第二次循环呢
就是1的和我们再加上i的值2
那么也就是s+i赋给s
那么再下一次呢
也是把3就是我们i的值
前面的S的时候
我们前面的求和就1加2的和
你再赋给新的s是这样的一个过程
那么代码写的时候就是
首先我们要输入什么呀
n的值
再输入我们的终值m的值
然后给初值求和
S初值是0
for循环从1到101
我们循环体呢
就是把s+i赋给s
输出呢print
从我们可以看到这有一个大括号的槽
就是我们用format格式把format后的变量你n,m,s
分别放到这个大括号的槽
那么输出的结果会是什么样
我们输出的就是从1到100的累加和为5050
我们看一个需要我们写这样一个乘法口诀表
我们来观察一下
如果我们这个地方前面的是i
j=i*j
那么i是怎样变化的呢
第一行i是1
第二行i是2
第三行i是3
我们可以看到他应该是像我们的range一样
从1变化到9
那么写的时候就range应该是到10
我们看这个里面的这个j是什么变化的
i是1的时候
j也是1
i是2的时候
j是什么呀
1到2
i是3的时候
j是1,2,3
所以我们可以看
怎么样去设计这个流程图呢
我们看应该i初值是1
当i是1的时候
我们来用for循环写的时候呢
1他应该变到什么呀
变到9
那么他其实的过程的也是要判断他每一次是不是小于
我们的10
如果是小于10的话
我们就再判断里面的j的值是怎么取的
那么j是从1开始取到什么呀
我们取的值是应该是i的值
那么个i的值取的时候判断他是不是小于i+1
满足这些条件的时候呢
我们要输出一个打印
print也是这样的一个format的格式输出
然后我们内部的循环j在不断的变化而i不变
那么需要不断的输出
那么就同j这一在不断的加
那直到我们的什么呀
我们的j的值和i的值相等的时候呢
我们可以跳出循环
那么这时候呢
我们可以输出一个空行
那再判断下一个i的值
那i+是不是小于10
如果满足条件再执行这样的一个循环
那么可以看得到
这有一个循环
这又有一个循环
所以这是一个嵌套循环结构来实现这段代码
好的我们看写
首先我们要设计外循环
应该是for i in range
1到10
再设置我们内部的循环
for j 应该是从
1,i+1
那么执行的循环体内的就是我们的输出语句
我们这个是一个槽挨着槽
j的槽输出一个i*j
我们斜杠是tab要空一段格
然后我们需要他下一个是跟在后面来执行
所以我们用空格把它隔开
好的我们这个循环内循环循环什么呀
i次那么外循环循环一次
那么外循环需要输出的是什么
我们输出的是内循环结束要输出一个换行
那么换行就可以通过print空的语句来进行换行啊
这段代码呢就是这样的
好
下面我们在jupyter下看一下我们刚才这几段代码的执行效果
我们首先看前面的1到4
range(1,4)执行的结果我们可以看啊
1的平方
2的平方
3的平方
再看我们求1到100的和
我们执行一下
我们输入初值是1
然后我们再看需要输入终值是100
看一下我们的执行结果
从1到100累加和为5050
我们这个代码其实呢是可以任意值的求和都可以
那么初值给定终值可以是不同的
我们来再执行一下
假如我们要执行从10到110的和
那么初值你可以赋10
然后我们再终值我们赋110
那么来看他的求和的过程
那么得到的和就是6060
好我们再看下面这段代码
就是我们刚才求乘法表的
i从1到10
j是1到i+1啊
那么这个我们输出看是不是乘法表呢
那么可以看刚刚我们PPT上的这个结果是一样的
是不是
1
1
2乘1
2乘2啊
我们再看下面这段代码呢
如果把输出的结构要换成这种格式呢
那我们再输出的时候是怎样子的
就是其实要再加一个循环
那么这个循环的是在要设计一下我们的输出这个空格
前面有多少多少个空格
所以我们可以用一个循环来去让他先输出一些空格
那么这个空格的执行的过程的是什么呀
从多到少
所以他应该是10-i
然后每次呢
是什么呀
输出这样的循环的这个空格
不断的在什么呀
不断的在减少的这样一个过程的
这个for循环是我们range是1
i+1
这个输出结果
然后我们把它按照我们的格式输出
这就是不同的格式的一个输出
又可以放另外一个循环
执行结果可以看
那么他就是这样的一个格式
下面给大家介绍一下while循环
while循环的结构是while条件冒号
然后呢
后面是我们的语句块
那当条件满足的时候呢
是执行这个语句块
也就是我们的循环体
重复执行N次以后
直到条件不满足呢
跳出循环
这就是循环结构的执行过程
下面我们来看一段代码的执行过程
那我们来看这段代码
他首先给a赋了初值
然后呢对a进行判断
这个条件a小于10
如果满足这个条件呢
就执行语句体print(a)的值
然后再给变量a增值
执行完了以后呢
再到while循环里面去判断条件
满足条件再执行我们的循环体
再进行增值
那么这个呢就是满足条件的时候
他总是在循环体内执行
执行
那么这个就是一个循环的过程
那么重复执行n次
那么直到条件不满足呢
再跳出循环
我们再仔细观察一下这段代码
我们这个变量呢
他是在不断的变化
那变化完以后呢
到while呢去判断条件满足就执行语句体
print和a的变量的增值过程
那直到条件不满足
那这时候呢就false
那么跳出循环代码执行
下面我们看用while语句
实现一到一百的求和的代码是如何编写呢
前面我们给大家介绍过
用for句求1到100的和
我们来看我们上次的代码是怎样写的呢
首先给n赋初值
m赋终值
s求和的变量赋初值
通过for循环来求得1到100的和
那么在while语句写这段代码的时候呢
一样是n只需要赋初值
m终止值是100
也是需要赋的
s同样也要赋初值
while写的时候这个条件怎么样写
while后面那么初始条件是n小于等于m可以这样写
也可以while n小于m+1
两种情况都可以
那么他都循环到100的时候执行最后一次
到101的时候跳出循环
可以写成while n 小于m+1
也可以写成while n 小于m
然后循环体内呢一样需要一个s的求和的过程
s+n赋给s
n的值也是要不断的增值的
每加一次要增一次
那我们需要n+1
赋给n的这样的一个过程
来执行完这个循环以后呢
需要输出print
那么输出我们1到100的和
那这段代码呢
我们在jupyter 下的实现呢他的结果
是跟我们前面的结果是一样的
下面我们再观察一下这段代码的执行过程
那我们看while循环里面多了一条if的语句
那么对他进行判断
满足条件呢
就执行print是一个偶数
否则的话就是执行print是一个奇数
大家观察一下
那这就是我们的变量的变化
这是我们的输出的结果
a的值随着循环的执行
他是在不断的变化
我们看a增值变成4的时候呢
那到了循环满足条件小于7
那么再判断他是不是能被2整除呢
可以
于是他就输出他是偶数
再执行增值再判断
5那么他不满足能被2整除
于是他就执行下面else语句的后面
那么就是说它是一个奇数输出
再增值
那么这个过程就是在while循环里面
又可以加了我们前面讲的分支语句
那这样子的我们就可以执行一些比较复杂的代码
我们直到不满足条件代码结束
-章测试
-章测试
-第一章:python简介
--章测试
-第二章:编码规范
--2.2常量和变量
--章测试
-第三章:数据类型
--章测试
-第四章:基本运算
--4.2比较运算符
--4.3逻辑运算符
--4.4位运算符
--章测试
-第五章:程序控制结构
--5.1顺序结构
--5.2条件结构
--5.3循环结构
--5.4跳转结构
--5.5异常处理
--章测试
-第六章:函数、模块与面向对象
--6.2面向对象
--6.4模块与包
--章测试
-第七章:文件操作
--7.2文件的写入
--章测试
-第八章:python生态库
--章测试
-第九章:TensorFlow基础
--章测试
-第十章:实例分析与实践
--章测试
-第十一章:人工智能在自然语言中的应用
--章测试