2013-10-21 48 views
-2

希望這將是非常簡單的,我需要與越來越字母等級的數量,然後打印它們與名單一起幫忙。 這裏是我的代碼:計數等級打印

def getScores(): 
    f_obj = open("scores.txt", "r") 
    data = f_obj.readlines() #read file into a list of record strings 
    f_obj.close() 
    return data 

def displayData(data): 
    print("Name   Avg  Grade")#print headings 
    for record in data: 
     name, ex1, ex2, ex3 = record.split() 
     exam1 = float(ex1) 
     exam2 = float(ex2) 
     exam3 = float(ex3) 
     avg = round(exam1 + exam2 + exam3)/3 
     if avg >= 100: 
      letterGrade = "A" 
     elif avg >= 89: 
      letterGrade = "B" 
     elif avg >= 79: 
      letterGrade = "C" 
     elif avg >= 69: 
      letterGrade = "D" 
     elif avg >= 59: 
      letterGrade = "F" 

正上方這裏是IM卡住我無法弄清楚如何做一個計數與某些字母等級。

 print("%-10s %5s %5s" % (name, round(avg, 1), letterGrade)) 

     print() 
     print(

def addStudent(): 
    name = input("Enter student name: ") 
    ex1 = int("Enter Exam 1 grade: ") 
    ex2 = int("Enter Exam 2 grade: ") 
    ex3 = int("Enter Exam 3 grade: ") 
    return name + "\t" + ex1 + "\t" + ex2 + "\t" + ex3 

def storeData(data): 
    f_obj = open("scores.txt", "w") 
    f_obj.writelines(data) 
    f_obj.close() 

def main(): 

    scoreData = getScores() # read data file into a list 

    while True: 
     print("""      
      Program Options 
    1.) Display Students. 
    2.) Add a new student: 
    3.) Exit Program   """) 
     option = input("Enter option 1, 2, or 3: ") 

     if option == "1": 
      displayData(scoreData) 
     elif option == "2": 
      scoreData.append(addItem()) # add record string to our list 
     elif option == "3": 
      storeData(scoreData) 
      print("Good bye.") 
      break 
     else: 
      print("Not a valid entry. Please enter 1, 2, or 3.") 

main() # start the program 
+0

我的問題已經得到解答,我修好了他們謝謝musical_coder! – user2899009

回答

0

提示:你已經知道如何確定一個等級是A,B,C等等。所以你所要做的就是同時增加一個計數器。

例如,你會在這樣的加算A級的數量:

if avg >= 100: 
    letterGrade = "A" 
    numAs += 1 

然後做對方等級類型同樣的事情。既然這看起來是功課,我會讓你弄清楚如何做到這一點。最重要的是,儘管Python對此並不嚴格,但應考慮聲明計數器變量的正確位置。

一旦你得到了工作,這裏是一個「額外信用」分配:看看你是否可以只使用一個單一的陣列做這一切。

+0

謝謝。我自己寫了這段代碼,希望你能回答我的問題,我現在就去測試一下。 – user2899009