上一篇我们学习了循环累加。
累加是把数字一点一点加起来。
比如:
1 + 2 + 3 + 4 + 5
今天学习另一个非常常用的循环模板:
循环计数。
计数不是求和。
计数是数一数“有几个符合要求”。
一、什么是计数
生活里经常会计数。
老师点名时,会数今天来了多少人。
做课堂任务时,会数有几个同学完成了。
检查作业时,会数有几道题做对了。
程序也可以这样做。
只要某件事符合条件,就让计数器加 1。
二、先准备一个计数器
计数前,也要先准备一个变量。
我们通常把它叫做 count。
一开始还没有数到任何东西。
所以 count 先等于 0。
可以把 count 想成一个计数牌。
每发现一个符合条件的对象,就在计数牌上加 1。
三、数一数 1 到 10 里有几个偶数
先看完整代码。
输出结果:
因为 1 到 10 里面的偶数是:
一共有 5 个。
四、代码一步步看
这句是准备计数器:
这句让程序重复检查 10 次:
for i in range(10):
这句把 0 到 9 变成 1 到 10:
这句判断 num 是不是偶数:
if num % 2 == 0:
如果是偶数,就让计数器加 1:
最后输出一共数到了几个:
五、看懂 count 的变化
为了看清楚计数过程,可以把 count 打印出来。
输出结果:
这说明程序每找到一个偶数,count 就增加一次。
遇到 2,count 变成 1。
遇到 4,count 变成 2。
遇到 6,count 变成 3。
遇到 8,count 变成 4。
遇到 10,count 变成 5。
六、用 += 写得更短
前面学过复合赋值。
可以简写成:
所以代码也可以写成:
输出结果还是:
刚开始学习时,如果觉得 += 不熟,可以先写完整形式。
重点是理解:
符合条件,才加 1。
不符合条件,就不动。
七、计数和累加有什么区别
循环累加看重的是“加进去的值”。
比如把 1 到 5 加起来:
输出结果是:
循环计数看重的是“出现了几次”。
比如数 1 到 5 里面有几个奇数:
输出结果是:
因为奇数是 1、3、5。
一共有 3 个。
八、让用户输入范围
如果想统计 1 到 n 里面有几个偶数,可以这样写。
如果输入:
输出结果:
因为 1 到 20 里面有 10 个偶数。
九、常见错误
第一种错误:
把 count = 0 写进循环里面。
错误示例:
这样每一轮都会把 count 清零。
就像每点到一个人前,都把点名表擦掉。
第二种错误:
没有写 if 判断,直接每轮都加 1。
这段代码会输出 10。
它数的是循环一共执行了几次。
它没有统计偶数个数。
第三种错误:
把 print(count) 放错缩进。
如果 print(count) 在循环里面,它会每一轮输出。
如果只想看最后答案,就放在循环外面。
十、课堂小任务
请完成一个统计程序。
要求:
输入一个正整数 n。
统计 1 到 n 里面有几个数能被 3 整除。
参考代码:
请分别输入 10、30、100 测试。
想一想:
为什么输入 30 时,结果是 10?
十一、今天记住三句话
计数前,先写 count = 0。
循环里,符合条件才让 count 加 1。
计数回答的是“有几个”,累加回答的是“总共多少”。
下一篇我们学习循环筛选。
筛选会把符合条件的内容找出来。