2013-11-25 129 views
0

試圖讓一個程序來輸入學生姓名和分數,對其進行測試,以確保評分以下是vaule> = 0和< = 100,將結果保存到一個文件和環回運行在蟒蛇

gradeFile = open("grade.dat","a") 
    Score = "0" 
    while Score>=0: 
     Name = raw_input("What is the students's name?: ") 
     Score = float(raw_input("What is the students's score?: ")) 
     while Score <0 or Score >100 : 
      print("ERROR: the grade cannot be less than 0 or more than 100") 
      Score = float(raw_input("What is the students's score?: ")) 
     gradeFile.write(Name+"\n") 
     gradeFile.write(Score+"\n") 
    gradeFile.close() 
    print("Data saved to grade.dat") 
+0

gradeFile.write(得分+ 「\ n」)爲您提供了錯誤'類型錯誤:對於不支持+操作數類型(S): '浮動' 和「str'',您可以將其更改爲gradeFile.write(str(Score)+「\ n」) – ton1c

+0

您沒有提出任何問題。你需要回答什麼問題? – user2357112

回答

1

你需要有一種方法來退出循環。對於你的外部循環,你會自動進入。然後你再次循環,直到你得到一個有效的分數,通過你的內部循環,然後重複。在您當前的配置中,無法退出循環。

此外,分數應該是一個數字,但是您在Score = "0"中將其作爲字符串輸入。輸出時,您要編寫str(Score),以便您可以將它與"\n"連接起來。

我建議你的外環有類似while Score >= 0 and userWantsToContinue的東西。您可以以任何您認爲合適的方式處理userWantsToContinue

1

您datatpe不匹配

Score = "0" # So, score is a string 
while Score >= 0: # Oh, thenm it's a integer?