2013-11-04 11 views
0
def main(): 
    getLargest() 



def getLargest(): 
    global line, value, highVal, numberFile 
    numberFile = open('numbers.dat', 'r') 
    print("Lets find the largest number!") 
    highVal = 0 
    line = numberFile.readline() 

    while line != "": 
     value = int(line) 
     if value >= highVal: 
      highVal = value 

    numberFile.close() 
    print("Highest value: ", highVal) 


main() 

out out是一個無限循環。我有一個包含25個隨機生成的數字的文件,它讀取的內容是 ,但該文件只是循環播放。我哪裏做錯了?卡在外部文件的讀循環python

這是一個班,但我只是尋找爲什麼它循環,而不是我的作業的答案。

+1

提示:'line = numberFile.readline()'只被調用一次。你應該把這行也放到while循環中。 – falsetru

+0

#here就是我所說的那樣: 而行= 「」: 線= numberFile.readline() 值= INT(線) 如果值> = highVal: highVal =值 #,然後我得到 第21行,在getLargest value = int(line) ValueError:int()與基數10的無效文字:'' – Condor

回答

0

要循環遍歷文件中的每一行,每次循環運行時都需要更新行變量。 所以,你應該循環改成這樣:(同時仍保持line = numberFile.readline()!)

while line != "": 
     value = int(line) 
     if value >= highVal: 
      highVal = value 
     line = numberFile.readline() 

否則循環將檢查同一行。一次又一次......