上节课我们已经学习了遍历循环、计数循环和条件循环。从循环结构开始,程序的难度明显变高了,需要多进行练习。这节课还有循环的三个知识点——break和continue语句以及循环的嵌套讲一下。最后再带大家熟悉一下顺序结构、分支结构、循环结构的综合运用。
一、break语句
break语句用于循环体中,它的作用是退出当前的循环体。break语句用在循环体的分支结构中。我们看看break语句的逻辑结构:

我们看一下具体的例子:
list_books = ["西游记", "红楼梦", "三国演义", "水浒传"]
for i in list_books:
if i == '三国演义':
break
print(i, end=' ')
程序运行后打印出 西游记 红楼梦。三国演义满足if条件判断,循环结束。
二、continue语句
continue语句用于循环体中,它的作用是跳过当前循环,进入下一次循环。continue语句用在循环体中的分支结构中。我们看一下continue语句的逻辑结构:

我们看一下具体的例子:
list_books = ["西游记", "红楼梦", "三国演义", "水浒传"]
for i in list_books:
if i == '三国演义':
continue
print(i, end=' ')
这段代码与刚刚的很像,唯一不同的是break变成了continue。程序运行后打印出 西游记 红楼梦 水浒传。三国演义满足if条件判断,continue后面的代码不再执行,因此跳过print语句直接进入下一次循环。
三、循环的嵌套
循环结构的嵌套是指在循环结构的语句块中含有循环结构。嵌套循环中每一个循环都必须遵守缩进和英文冒号等格式要求,同一级别的循环必须在同一个缩进层次里面。
循环嵌套执行的次数 = 外层循环次数 × 内层循环次数。
我们看下面的代码:
for i in range(3):
for j in range(3):
print(i, j)
循环嵌套的代码,我们可以看成有行有列的表格,如下所示:
i \ j |
0 |
1 |
2 |
0 |
0 0 |
0 1 |
0 2 |
1 |
1 0 |
1 1 |
1 2 |
2 |
2 0 |
2 1 |
2 2 |
四、循环结构的综合应用
随着我们学习了循环结构后,我们能够使用Python解决很多复杂的问题了,我们这里举几个比较常用的例子。
4.1 用户分多次输入,将用户输入的值存入列表中
用户依次输入每个学生的成绩,输入‘q’结束输入。最后再计算全班的平均分。
分析:
在书写代码前我们不知道班级的人数,无法确定循环的次数,只有使用无限循环,用户输入‘q’时使用break语句结束循环。
参考代码如下:
scores = []
while True:
s = input("请输入分数,输入q结束输入:")
if s == 'q':
break
s = float(s)
scores.append(s)
avg = sum(scores) / len(scores)
print('平均分:', avg)
4.2 对列表中的值进行分类
一个列表中有很多数,我们要把奇数放到一起、把偶数放到一起。
分析:
我们对列表进行遍历,遍历到过程中判断这个数是奇数还是偶数,奇数放入一个列表中,偶数放入另一个列表中就可以了。
参考代码如下:
number = [34, 23, 35, 46, 21, 44, 82, 27, 16, 22, 97]
odd = []
even = []
for i in number:
if i % 2 == 0:
even.append(i)
else:
odd.append(i)
print('奇数:', odd)
print('偶数:', even)
4.3 数列的和或积的计算
前面我们讲计数循环时,已经提到了从1到100所有整数的和的计算了。遇到这种类型的问题,我们只需要先定义一个变量做累积计数用。累加时初始值为0,累乘时初始值为1。(0加任何数等于它本身、1乘任何数等于它本身。)我们看下面一个例子:
“!”是一种数学运算符,名字叫“阶乘”。一个正整数的阶乘的定义小于等于这个正整数的所有正整数的乘积。
1! = 1
2! = 2 × 1
3! = 3 × 2 × 1
……
输入一个正整数,计算它的阶乘。
参考代码如下:
n = int(input("请输入一个正整数:"))
f = 1
for i in range(1, n + 1):
f *= i
print(n, "! =", f)
4.4 对可能的情况进行穷举
我们经常碰到一种情况,在一定范围内寻找满足一定条件的值。有用的留下来,没有用的舍弃。我们可以利用循环,对所有的可能性进行穷举,并在循环体中通过分支结构判断,将有用的留下来,没用的舍弃。我们看下面的例子:
找出能够能够被3整除,不能被7整除的三位数有多少个。
分析:三位数的范围是100到999,我们可以使用计数循环查找所有的三位数,并判断这个数是否满足条件。
参考代码如下:
n = 0 # 统计个数用的变量
for i in range(100, 1000):
if i % 3 == 0 and i % 7 != 0:
n += 1
print(n)
循环的用途还有很多,我们遇到问题时,可以按照上面的思路自己开动脑筋。
到这节课为止,Python的基本数据类型和程序的结构都已经讲完了。从下节课开始,我们会接触一个非常有意思的知识:使用Python画画。
五、课后思考题
1、编程题
下面是几位同学的语文、数学、英语的期末成绩,请你写一段代码,分别求出这些同学各个学科的平均分,最高分,最低分,并且计算出来每位同学的总成绩。
[(98,97,96), (79,98,97), (90,96,97), (99,90,92), (93,98,91), (98,99,97), (89,95,87), (97,67,89)]
2、编程题
一个正整数只能被1和它本身整除,这个数被称为质数。打印出2到100之间所有的质数。
3、编程题
输入两个数,计算这两个数之间(包含这两个数)所有不能被3整除的数的和。
六、上节课思考题答案
1、D (复习一下print()函数的“小尾巴”的内容)
2、D (其他的循环次数都是10次,D选项循环次数是11次)
3、参考代码:
n = 0
for i in range(3, 91, 3):
n += i
print(n)
4、参考代码:
list1 = [14, 12, 64, 23, 55, 13, 34]
n = 0
for i in list1:
n += i
print(n)

如若转载,请注明出处:https://www.dasum.com/231768.html