Python计数器和累加器

计数器和累加器是编程中非常重要的概念,它们帮助我们记录事件发生的次数或累加数值的总和。本课将详细介绍如何在Python中使用计数器和累加器。

计数器 vs 累加器

计数器
0
累加器
0

什么是计数器?

计数器用于记录某个事件发生的次数。每次事件发生时,我们增加计数器的值(通常是加1)。计数器常用于统计循环执行次数、成功操作次数等。

计数器的使用步骤
  1. 初始化一个变量为0(计数器变量)
  2. 每当需要计数的事件发生时
  3. 将计数器变量增加1
  4. 在需要时读取计数器的值
计数器示例代码
# 统计列表中及格成绩的数量
scores = [85, 92, 78, 58, 67, 90, 76, 88]

count = 0 # 计数器初始化

for score in scores:
    if score >= 60:
        count = count + 1 # 计数器增加

print("及格人数:", count)

什么是累加器?

累加器用于累计数值的总和。每次需要累加时,我们将当前值加到累加器上。累加器常用于计算总和、平均值等。

累加器的使用步骤
  1. 初始化一个变量为0(累加器变量)
  2. 每当需要累加数值时
  3. 将数值加到累加器变量上
  4. 在需要时读取累加器的值
累加器示例代码
# 计算列表中所有成绩的总和
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

实际应用场景

8
及格
5
良好
2
优秀
统计成绩分布
# 统计不同分数段的人数
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)

练习时间

练习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)

练习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)
重要提示

在使用计数器或累加器时,务必记住在合适的位置初始化它们。忘记初始化是初学者常见的错误,会导致计算结果不正确。