本文目录导读:

我来帮你编写一个Python程序来统计球员评分最高者是谁,这里提供几个不同实现方式的示例:
使用字典存储球员和评分
def find_top_player_dict():
# 球员评分数据
players_scores = {
"詹姆斯": 28.5,
"库里": 25.3,
"杜兰特": 27.8,
"字母哥": 29.1,
"约基奇": 26.4
}
# 方法1:使用max函数
top_player = max(players_scores, key=players_scores.get)
top_score = players_scores[top_player]
print("="*30)
print("🏀 球员评分统计")
print("="*30)
for player, score in players_scores.items():
print(f"{player}: {score}分")
print("-"*30)
print(f"🏆 最高评分球员: {top_player}")
print(f"📊 评分为: {top_score}分")
print("="*30)
return top_player, top_score
# 运行函数
find_top_player_dict()
使用列表存储球员信息
def find_top_player_list():
# 球员数据:[(姓名, 评分), ...]
players = [
("乔丹", 30.1),
("科比", 25.0),
("詹姆斯", 28.5),
("库里", 24.8),
("杜兰特", 27.2)
]
# 找到最高分球员
top_player = max(players, key=lambda x: x[1])
print("="*30)
print("🏀 球员评分统计")
print("="*30)
for name, score in players:
print(f"{name}: {score}分")
print("-"*30)
print(f"🏆 最高评分球员: {top_player[0]}")
print(f"📊 评分为: {top_player[1]}分")
print("="*30)
return top_player
# 运行函数
find_top_player_list()
支持用户输入和多个球员
def find_top_player_input():
players = {}
while True:
name = input("请输入球员姓名(输入'结束'退出):")
if name == "结束":
break
try:
score = float(input(f"请输入{name}的评分:"))
players[name] = score
except ValueError:
print("评分请输入数字!")
continue
if not players:
print("没有输入任何球员数据")
return
# 找到最高评分球员
top_player = max(players, key=players.get)
top_score = players[top_player]
# 输出结果
print("\n" + "="*35)
print("📊 球员评分统计结果")
print("="*35)
for name, score in sorted(players.items(), key=lambda x: x[1], reverse=True):
print(f"{'🥇' if name == top_player else ' '} {name}: {score:.1f}分")
print("-"*35)
print(f"🏆 最高评分球员: {top_player}")
print(f"📊 评分: {top_score:.1f}分")
print("="*35)
# 运行函数(取消注释即可使用)
# find_top_player_input()
带数据分析和可视化
def analyze_players_scores():
# 示例数据
players_data = {
"勒布朗·詹姆斯": 28.5,
"斯蒂芬·库里": 25.3,
"凯文·杜兰特": 27.8,
"扬尼斯·阿德托昆博": 29.1,
"尼古拉·约基奇": 26.4,
"卢卡·东契奇": 27.9,
"吉安尼斯·斯泽比亚克": 22.5
}
# 统计分析
scores_list = list(players_data.values())
# 基本信息
total_players = len(players_data)
avg_score = sum(scores_list) / total_players
max_score = max(scores_list)
min_score = min(scores_list)
# 找到最高分球员(可能有并列)
top_players = [name for name, score in players_data.items()
if score == max_score]
# 输出结果
print("="*40)
print(" 🏀 球员评分分析报告")
print("="*40)
print(f"总参与人数: {total_players}人")
print(f"平均评分: {avg_score:.2f}分")
print(f"最高评分: {max_score:.1f}分")
print(f"最低评分: {min_score:.1f}分")
print("-"*40)
print("🥇 最高评分球员:")
for player in top_players:
print(f" ⭐ {player}: {max_score:.1f}分")
print("-"*40)
print("📊 评分排名:")
sorted_players = sorted(players_data.items(),
key=lambda x: x[1],
reverse=True)
for i, (name, score) in enumerate(sorted_players, 1):
medal = "🥇" if i == 1 else "🥈" if i == 2 else "🥉" if i == 3 else " "
print(f"{medal} 第{i}名: {name:<15} {score:.1f}分")
print("="*40)
return top_players, max_score
# 运行函数
analyze_players_scores()
运行示例
如果你运行方案一,输出结果将如下:
==============================
🏀 球员评分统计
==============================
詹姆斯: 28.5分
库里: 25.3分
杜兰特: 27.8分
字母哥: 29.1分
约基奇: 26.4分
------------------------------
🏆 最高评分球员: 字母哥
📊 评分为: 29.1分
==============================
简单版本(最适合快速使用)
def quick_find_top_player():
# 直接定义球员评分
scores = {
"詹姆斯": 28.5,
"库里": 25.3,
"杜兰特": 27.8,
"字母哥": 29.1,
"约基奇": 26.4
}
# 一行代码找到最高分球员
top_player = max(scores, key=scores.get)
print(f"评分最高的球员是:{top_player},评分:{scores[top_player]}分")
return top_player
# 使用
quick_find_top_player()
选择最适合你需求的版本:
- 方案一:最常用,使用字典
- 方案二:使用列表,适合简单场景
- 方案三:支持手动输入数据
- 方案四:完整的统计分析
- 快速版本:一行代码解决问题
你可以根据实际数据格式选择相应的实现方式。