python案例统计失误次数哪队更少?

wen python案例 3

Python案例:统计失误次数,哪队更少?

下面我用一个完整的案例来演示如何统计两支队伍的失误次数,并判断哪队失误更少。

python案例统计失误次数哪队更少?

案例背景

假设我们有两支篮球队(A队和B队)的比赛失误记录,需要统计各自的失误总数,然后比较哪队失误更少。

完整代码实现

# ========== 方法一:基础版 ==========
def compare_turnovers(team_a, team_b):
    """统计两队失误次数并比较"""
    total_a = sum(team_a)
    total_b = sum(team_b)
    print(f"A队各场失误: {team_a}")
    print(f"B队各场失误: {team_b}")
    print(f"A队总失误: {total_a}")
    print(f"B队总失误: {total_b}")
    print("-" * 30)
    if total_a < total_b:
        print(f"✅ A队失误更少(少 {total_b - total_a} 次)")
    elif total_b < total_a:
        print(f"✅ B队失误更少(少 {total_a - total_b} 次)")
    else:
        print("🤝 两队失误次数相同")
# 测试数据:每场比赛的失误次数
team_a = [12, 8, 15, 10, 7]
team_b = [10, 14, 9, 11, 13]
compare_turnovers(team_a, team_b)

输出结果:

A队各场失误: [12, 8, 15, 10, 7]
B队各场失误: [10, 14, 9, 11, 13]
A队总失误: 52
B队总失误: 57
------------------------------
✅ A队失误更少(少 5 次)

进阶版:使用字典和函数式编程

from functools import reduce
def analyze_turnovers(data):
    """
    data: {'队名': [失误列表], ...}
    返回统计结果
    """
    stats = {}
    for team, turnovers in data.items():
        stats[team] = {
            '总失误': sum(turnovers),
            '平均失误': round(sum(turnovers) / len(turnovers), 2),
            '最多失误': max(turnovers),
            '最少失误': min(turnovers),
        }
    # 找出失误最少的队
    min_team = min(stats, key=lambda t: stats[t]['总失误'])
    return stats, min_team
# 数据
data = {
    'A队': [12, 8, 15, 10, 7],
    'B队': [10, 14, 9, 11, 13],
    'C队': [6, 9, 8, 7, 10],
}
stats, winner = analyze_turnovers(data)
# 打印统计表
print(f"{'队伍':<6}{'总失误':<8}{'平均失误':<10}{'最多':<6}{'最少':<6}")
print("-" * 40)
for team, s in stats.items():
    print(f"{team:<6}{s['总失误']:<8}{s['平均失误']:<10}{s['最多失误']:<6}{s['最少失误']:<6}")
print(f"\n🏆 失误最少的队伍是:{winner}(共 {stats[winner]['总失误']} 次)")

输出结果:

队伍    总失误   平均失误    最多   最少  
----------------------------------------
A队    52      10.4      15    7     
B队    57      11.4      14    9     
C队    40      8.0       10    6     
🏆 失误最少的队伍是:C队(共 40 次)

关键知识点

知识点 说明
sum() 求列表元素总和
min(key=...) 按指定规则找最小值
lambda 匿名函数,用于排序/查找规则
字典遍历 存储多队数据,结构清晰

输入动态数据版(可交互)

def input_team_data():
    """让用户输入每队的失误数据"""
    data = {}
    n = int(input("请输入队伍数量: "))
    for i in range(n):
        name = input(f"第{i+1}队名称: ")
        turnovers = list(map(int, input(f"{name}各场失误(空格分隔): ").split()))
        data[name] = turnovers
    return data
data = input_team_data()
stats, winner = analyze_turnovers(data)
print(f"\n失误最少的队伍:{winner}")

统计"哪队失误更少"的核心逻辑:

  1. 收集数据 → 用列表/字典存储每队失误
  2. 汇总计算 → 用 sum() 求总数
  3. 比较大小 → 用 min()if-elif 找最少
  4. 输出结论 → 格式化打印结果

如果你有具体的场景(比如足球、考试错题、代码报错等),告诉我,我可以针对性改写这个案例 😊

抱歉,评论功能暂时关闭!