2014-04-28 2 views
-1

나는 txt 문서에 높은 점수를 저장하려고 시도하고 그것을 화면에 표시하려고합니다. 그러나 플레이어가 얻은 점수가 더 높은 점수를 얻었을 때 txt 파일에서 높은 점수를 변경하고 싶습니다. 내가 내 코드가 약간의 문제가있는 경우, 문하지만이 작업을 수행하는 방법을 대략 알고파이썬 도움말. 진술이 작동하지 않는다면?

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를 반환합니다. 설명해주십시오.

+1

당신은'int'와'string'을 비교된다. – devnull

+1

오탐을 놀라게하는 FAQ는 여러 답변을 받아야합니다. – devnull

+0

어떻게 srting을 정수로 변환합니까? @devnull – Dalex

답변

0

read은 기본적으로 전체 파일을 읽습니다. 그리고 그것은 파이썬에서 문자열로 취급 될 것입니다. EOF가 도달 될 때까지 크기 인자가 음수 또는 생략

경우 문서에서 인용 모든 데이터를 판독. 바이트는 이며 문자열 객체로 반환됩니다.

그래서, 당신은 명시 적으로 stringint을 비교하는이

HS = int(highscoreFile.read()) 
1

같은 문자열을 숫자로 변환해야합니다.

if score > HS: 

이어야 라인,

if score > int(HS): 
관련 문제