本文目录导读:

我来为您写一个统计球员评分的Python案例,包含多种实现方式:
方法1:使用字典和max函数
# 球员评分数据
players = {
'梅西': 9.8,
'C罗': 9.2,
'姆巴佩': 8.9,
'哈兰德': 9.5,
'内马尔': 8.7,
'莱万': 9.0
}
# 方法1:使用max函数获取最高分的球员
highest_player = max(players, key=players.get)
highest_score = players[highest_player]
print(f"评分最高的球员是:{highest_player},评分为:{highest_score}")
方法2:使用列表存储球员对象
class Player:
def __init__(self, name, score):
self.name = name
self.score = score
def __str__(self):
return f"{self.name}: {self.score}分"
# 创建球员列表
players = [
Player('梅西', 9.8),
Player('C罗', 9.2),
Player('姆巴佩', 8.9),
Player('哈兰德', 9.5),
Player('内马尔', 8.7),
Player('莱万', 9.0)
]
# 找出最高分的球员
best_player = max(players, key=lambda p: p.score)
print(f"评分最高的球员是:{best_player}")
方法3:完整统计功能
def analyze_player_scores(players_data):
"""
统计球员评分信息
"""
if not players_data:
return "没有球员数据"
# 找出最高分球员
highest_player = max(players_data, key=players_data.get)
highest_score = players_data[highest_player]
# 找出最低分球员
lowest_player = min(players_data, key=players_data.get)
lowest_score = players_data[lowest_player]
# 计算平均分
average_score = sum(players_data.values()) / len(players_data)
# 找出高于平均分的球员
above_average = [name for name, score in players_data.items()
if score > average_score]
return {
'highest': (highest_player, highest_score),
'lowest': (lowest_player, lowest_score),
'average': round(average_score, 2),
'above_average': above_average,
'total_players': len(players_data)
}
# 测试数据
players = {
'梅西': 9.8,
'C罗': 9.2,
'姆巴佩': 8.9,
'哈兰德': 9.5,
'内马尔': 8.7,
'莱万': 9.0
}
# 执行分析
result = analyze_player_scores(players)
print("=== 球员评分统计结果 ===")
print(f"总球员数:{result['total_players']}人")
print(f"最高分球员:{result['highest'][0]}({result['highest'][1]}分)")
print(f"最低分球员:{result['lowest'][0]}({result['lowest'][1]}分)")
print(f"平均分:{result['average']}分")
print(f"高于平均分的球员:{', '.join(result['above_average'])}")
方法4:支持多场比赛统计
def multi_game_analysis():
"""
多场比赛球员评分统计
"""
# 多场比赛数据
matches = {
'第一场': {'梅西': 9.5, 'C罗': 8.8, '姆巴佩': 9.0},
'第二场': {'梅西': 8.8, 'C罗': 9.5, '哈兰德': 9.2},
'第三场': {'梅西': 9.8, '姆巴佩': 8.7, '哈兰德': 9.5}
}
# 统计每个球员的总分
player_total_scores = {}
player_match_count = {}
for match, scores in matches.items():
print(f"\n--- {match} ---")
for player, score in scores.items():
# 累加总分
if player not in player_total_scores:
player_total_scores[player] = 0
player_total_scores[player] += score
# 记录出场次数
if player not in player_match_count:
player_match_count[player] = 0
player_match_count[player] += 1
print(f" {player}: {score}分")
# 计算平均分
print("\n=== 综合统计 ===")
player_averages = {}
for player in player_total_scores:
avg = player_total_scores[player] / player_match_count[player]
player_averages[player] = round(avg, 2)
# 找出综合评分最高球员
top_player = max(player_averages, key=player_averages.get)
print("\n各球员平均分:")
for player, avg in sorted(player_averages.items(), key=lambda x: x[1], reverse=True):
print(f" {player}: {avg}分")
print(f"\n🎯 综合评分最高的球员是:{top_player}")
return top_player
# 运行多场比赛统计
if __name__ == "__main__":
print("=== 单场比赛统计 ===")
players = {'梅西': 9.8, 'C罗': 9.2, '哈兰德': 9.5}
best = max(players, key=players.get)
print(f"最高分球员:{best},评分:{players[best]}")
print("\n=== 多场比赛统计 ===")
multi_game_analysis()
方法5:带输入功能的完整程序
def input_player_data():
"""
交互式输入球员评分数据
"""
players = {}
print("请输入球员评分数据(输入'结束'退出):")
while True:
name = input("请输入球员姓名:")
if name == '结束':
break
try:
score = float(input(f"请输入{name}的评分(0-10):"))
if 0 <= score <= 10:
players[name] = score
else:
print("评分必须在0-10之间!")
except ValueError:
print("请输入有效的数字!")
return players
def main():
# 选择输入方式
print("1. 使用示例数据")
print("2. 手动输入数据")
choice = input("请选择:")
if choice == '2':
players = input_player_data()
else:
players = {
'梅西': 9.8,
'C罗': 9.2,
'姆巴佩': 8.9,
'哈兰德': 9.5
}
if players:
# 找出最高分球员
highest_player = max(players, key=players.get)
highest_score = players[highest_player]
print(f"\n📊 统计结果:")
print(f"参与统计的球员:{', '.join(players.keys())}")
print(f"🏆 评分最高的球员是:{highest_player},评分:{highest_score}")
# 显示排名
print("\n📋 完整排名:")
sorted_players = sorted(players.items(), key=lambda x: x[1], reverse=True)
for rank, (name, score) in enumerate(sorted_players, 1):
print(f" 第{rank}名:{name} - {score}分")
if __name__ == "__main__":
main()
运行结果示例
=== 单场比赛统计 ===
最高分球员:梅西,评分:9.8
=== 多场比赛统计 ===
各球员平均分:
梅西: 9.37分
哈兰德: 9.35分
C罗: 9.15分
姆巴佩: 8.85分
🎯 综合评分最高的球员是:梅西
这些方法涵盖了不同的使用场景:
- 方法1:最简单的单场比赛统计
- 方法2:面向对象的实现方式
- 方法3:完整的统计功能(最高分、最低分、平均值等)
- 方法4:多场比赛的综合统计
- 方法5:带交互功能的完整程序
您可以根据具体需求选择合适的方法。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播