当用户输入玩家id时,需要找到用户的平均得分
csv文件:
name tribe id Score1 Score2 Score3 Score4
Aang Normad N321B 89 67 54 78Gyatso Omaticay O111C 54 78 65 54
我尝试添加在SO上找到的一些内容,但出现了错误:以10为基数的int()的文本无效:“Score1”。会很感激任何人能给我指出正确的方向,刚刚开始学习python。你知道吗
import csv
filePath="data.csv"
with open(filePath) as csvfile:
avatar_id= input ("Enter Avatar ID:")
reader = csv.DictReader(csvfile)
for row in reader:
if avatar_id in row['id']:
#just print some stuff
user,tribe,id, *scores= row
average= sum([int(score) for score in scores])/4
print("{0:>6}{1:>8}{2:>7}{3:>7}{4:^14}".format(row['Air'],row['Water'],row['Earth'],row['Fire'], average))
print("==============================")
else:
x=5
if x>4:
print('No avatar found')
您需要为不存在的键添加额外的检查,并删除CSV文件中的空行。您还需要将分隔符添加到csv.DictReader文件因为它默认为逗号分隔符。参见下面的示例:
你的错误准确地告诉了你问题所在。您的代码正在尝试将标题标签
Score1
转换为此行中的整数:失败了。为了避免在计算中包含头标签,请测试
reader.line_num
以跳过文件的第一行。你知道吗或者,为了安全起见,忽略任何非数字数据:
替换
与
相关问题 更多 >
编程相关推荐