You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从存储游戏分数的外部CSV文件中打印最高分数?

如何从Top Trumps游戏的分数CSV中提取最高分数?

你当前的代码已经实现了分数的追加存储和所有历史记录的打印,要提取最高分数,只需在读取CSV时对分数做数值转换,再遍历记录找出最大值即可。以下是修改后的完整代码:

import csv

field_names = ['player_name','score']

# 假设player_name和score是当前局的游戏结果数据
player_name = "张三"
score = 150

# 追加新分数到CSV文件
data = [{"player_name": player_name, 'score': score}]
with open("score.csv", "a", newline='') as csv_file:
    spreadsheet = csv.DictWriter(csv_file, fieldnames=field_names)
    # 首次写入时添加表头(避免重复写入)
    csv_file.seek(0, 2)
    if csv_file.tell() == 0:
        spreadsheet.writeheader()
    spreadsheet.writerows(data)

# 读取文件并找出最高分数
max_score = -1
top_player = ""
with open('score.csv', 'r') as csv_file:
    spreadsheet = csv.DictReader(csv_file)
    for row in spreadsheet:
        # 将分数从字符串转为整数,避免字符串比较逻辑错误
        current_score = int(row['score'])
        if current_score > max_score:
            max_score = current_score
            top_player = row['player_name']

if max_score != -1:
    print(f"最高分数是:{max_score},由玩家{top_player}获得")
else:
    print("分数文件为空,暂无游戏记录")

关键细节说明:

  • 读取CSV时必须把score字段从字符串转为整数,否则直接比较字符串会得到错误结果(比如"99"会被判定为比"100"大)
  • 加入表头判断逻辑,避免每次追加数据时重复写入表头
  • 初始化max_score为-1,方便区分文件为空的情况
  • 同时记录了最高分数对应的玩家,若只需要分数本身,可删除top_player相关代码

内容的提问来源于stack exchange,提问作者zzzz-a

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 23:05:34