【发布时间】:2018-01-29 01:37:16
【问题描述】:
我正在创建一个测验,其中每个用户的分数都保存到一个外部文本文件中。但是,每当我输出数学简单测验中最高分的报告时,它都会显示:ValueError: invalid literal for int() with base 10: ''
这似乎是问题所在:
if highestScore <= int(line.strip()):
with open("mathsEasy.txt") as mathsEasyFile:
highestScore = 0
for line in mathsEasyFile:
if highestScore <= int(line.strip()):
highestScore = int(line.strip())
mathsEasyFile.close()
print "The highest score is", highestScore
基本上,每次用户进行数学简单测验时,它都会将他们的分数保存到名为 mathsEasy.txt 的文本文件中
文本文件如下所示:the username : score 例如Kat15 : 4 我只需要输出最高分,而不是用户名。
【问题讨论】:
-
你的缩进关闭了吗?然而,这个错误表明
line.strip()是空字符串(''),所以当它试图将其解析为整数时,Python 会抛出一个错误。您的文件中可能有空行 -
不,我检查了我的文件,里面有信息
-
我并不是暗示整个文件是空的,但是如果任何一行是空的,你的代码就会抛出那个错误。我建议在尝试将其解析为整数之前检查该行是否为空,例如
if len(line.strip()) != 0:。或者,您可以简单地将其添加到现有的 if 语句中,例如if len(line.strip()) != 0 and highestScore <= int(line.strip()): -
好的。解析是什么意思?
标签: python python-2.7 int text-files highest