Python计数器和累加器
计数器和累加器是编程中非常重要的概念,它们帮助我们记录事件发生的次数或累加数值的总和。本课将详细介绍如何在Python中使用计数器和累加器。
计数器 vs 累加器
计数器
0
累加器
0
什么是计数器?
计数器用于记录某个事件发生的次数。每次事件发生时,我们增加计数器的值(通常是加1)。计数器常用于统计循环执行次数、成功操作次数等。
计数器的使用步骤
- 初始化一个变量为0(计数器变量)
- 每当需要计数的事件发生时
- 将计数器变量增加1
- 在需要时读取计数器的值
计数器示例代码
# 统计列表中及格成绩的数量
scores = [85, 92, 78, 58, 67, 90, 76, 88]
count = 0 # 计数器初始化
for score in scores:
if score >= 60:
count = count + 1 # 计数器增加
print("及格人数:", count)
scores = [85, 92, 78, 58, 67, 90, 76, 88]
count = 0 # 计数器初始化
for score in scores:
if score >= 60:
count = count + 1 # 计数器增加
print("及格人数:", count)
什么是累加器?
累加器用于累计数值的总和。每次需要累加时,我们将当前值加到累加器上。累加器常用于计算总和、平均值等。
累加器的使用步骤
- 初始化一个变量为0(累加器变量)
- 每当需要累加数值时
- 将数值加到累加器变量上
- 在需要时读取累加器的值
累加器示例代码
# 计算列表中所有成绩的总和
scores = [85, 92, 78, 58, 67, 90, 76, 88]
total = 0 # 累加器初始化
for score in scores:
total = total + score # 累加当前成绩
print("总分:", total)
print("平均分:", total / len(scores))
scores = [85, 92, 78, 58, 67, 90, 76, 88]
total = 0 # 累加器初始化
for score in scores:
total = total + score # 累加当前成绩
print("总分:", total)
print("平均分:", total / len(scores))
计数器 vs 累加器 对比
| 特性 | 计数器 | 累加器 |
|---|---|---|
| 主要用途 | 统计事件发生次数 | 累计数值的总和 |
| 初始化值 | 0 | 0或初始值 |
| 增量 | 通常增加1 | 增加任意数值 |
| 示例应用 | 统计及格人数 | 计算成绩总分 |
| 更新操作 | count += 1 | total += value |
| 典型变量名 | count, counter | total, sum, accumulator |
实际应用场景
统计成绩分布
# 统计不同分数段的人数
scores = [85, 92, 78, 58, 67, 90, 76, 88, 95, 72, 81, 63]
# 初始化计数器
count_pass = 0 # 及格人数(≥60)
count_good = 0 # 良好人数(≥80)
count_excellent = 0# 优秀人数(≥90)
for score in scores:
if score >= 90:
count_excellent += 1
if score >= 80:
count_good += 1
if score >= 60:
count_pass += 1
print("及格人数:", count_pass)
print("良好人数:", count_good)
print("优秀人数:", count_excellent)
scores = [85, 92, 78, 58, 67, 90, 76, 88, 95, 72, 81, 63]
# 初始化计数器
count_pass = 0 # 及格人数(≥60)
count_good = 0 # 良好人数(≥80)
count_excellent = 0# 优秀人数(≥90)
for score in scores:
if score >= 90:
count_excellent += 1
if score >= 80:
count_good += 1
if score >= 60:
count_pass += 1
print("及格人数:", count_pass)
print("良好人数:", count_good)
print("优秀人数:", count_excellent)
计数器与累加器的结合使用
在实际编程中,我们经常同时使用计数器和累加器来解决问题。下面的例子演示了如何计算学生的平均分:
# 计算学生的平均分
students = [
{"name": "小明", "scores": [85, 90, 78]},
{"name": "小红", "scores": [92, 88, 95]},
{"name": "小刚", "scores": [78, 85, 80]}
]
# 初始化累加器(总分)和计数器(学生人数)
total_score = 0
student_count = 0
for student in students:
student_count += 1 # 计数器增加
for score in student["scores"]:
total_score += score # 累加器增加
average = total_score / student_count
print("总人数:", student_count)
print("总分:", total_score)
print("平均分:", average)
students = [
{"name": "小明", "scores": [85, 90, 78]},
{"name": "小红", "scores": [92, 88, 95]},
{"name": "小刚", "scores": [78, 85, 80]}
]
# 初始化累加器(总分)和计数器(学生人数)
total_score = 0
student_count = 0
for student in students:
student_count += 1 # 计数器增加
for score in student["scores"]:
total_score += score # 累加器增加
average = total_score / student_count
print("总人数:", student_count)
print("总分:", total_score)
print("平均分:", average)
练习时间
练习1:统计正负数
给定一个数字列表:numbers = [12, -5, 8, -3, 0, 7, -10, 9]
编写代码统计其中正数、负数和零的个数。
numbers = [12, -5, 8, -3, 0, 7, -10, 9]
positive = 0 # 正数计数器
negative = 0 # 负数计数器
zero = 0 # 零计数器
for num in numbers:
if num > 0:
positive += 1
elif num < 0:
negative += 1
else:
zero += 1
print("正数个数:", positive)
print("负数个数:", negative)
print("零的个数:", zero)
positive = 0 # 正数计数器
negative = 0 # 负数计数器
zero = 0 # 零计数器
for num in numbers:
if num > 0:
positive += 1
elif num < 0:
negative += 1
else:
zero += 1
print("正数个数:", positive)
print("负数个数:", negative)
print("零的个数:", zero)
练习2:计算购物总价
给定一个购物车列表:cart = [29.9, 15.5, 42.0, 8.8, 99.9]
编写代码计算购物车中商品的总价。
cart = [29.9, 15.5, 42.0, 8.8, 99.9]
total_price = 0.0 # 总价累加器
for price in cart:
total_price += price
print("商品总价: ¥", total_price)
total_price = 0.0 # 总价累加器
for price in cart:
total_price += price
print("商品总价: ¥", total_price)
重要提示
在使用计数器或累加器时,务必记住在合适的位置初始化它们。忘记初始化是初学者常见的错误,会导致计算结果不正确。