-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"

ここのすぐ上で、特定の文字の等級でカウントを行う方法がわかりません。

        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 
4

1 に答える 1

0

ヒント: グレードが A、B、C などであるかどうかを判断する方法は既にご存じです。したがって、必要なことは、同時にカウンターをインクリメントすることだけです。

たとえば、A 評価の数をカウントするには、次のようなものを追加します。

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

次に、他の等級タイプごとに同じことを行います。これは宿題のように見えるので、これをすべて行う方法を理解させます。最も重要なことは、Python はこれについて厳密ではありませんが、カウンター変数を宣言する正しい場所について考えることです。

それが機能するようになったら、ここに「追加の単位」の割り当てがあります。単一の配列だけを使用してすべてを実行できるかどうかを確認してください。

于 2013-10-21T03:26:21.167 に答える