Python帮助。如果声明不起作用?

时间:2014-04-28 07:30:27

标签: python if-statement text-files

我正在尝试将高分存储在txt文档中,然后将其读取以在屏幕上显示。但是当玩家获得的分数更高时,我想改变txt文件中的高分。 我知道大致如何做到这一点,但我的代码中的If语句有一点问题:
它一直说错...... 这是代码:

score = 10
highscoreFile = open('Highscore.txt', 'r+')
HS = highscoreFile.read() #the HS is, let's say, 3
highscoreFile.close()
print 'Your score is', score
print 'The High-Score is', HS
if score > HS:
    print 'newHS'
    newHS = True
    highscoreFile = open('Highscore.txt', 'w+')
    highscoreFile.write('%s' %(score))
    highscoreFile.close()

注意:如果我把'<'相反,对于If语句,它返回True ...请解释。

2 个答案:

答案 0 :(得分:1)

您正在将intstring进行比较。 这条线

if score > HS:

应该是,

if score > int(HS):

答案 1 :(得分:0)

默认情况下,

read会读取整个文件。这将被视为Python中的字符串。引自文档,

  

如果size参数为负数或省略,读取所有数据,直到达到EOF 。字节作为字符串对象返回。

因此,您必须将字符串显式转换为数字,例如

HS = int(highscoreFile.read())