2016-08-27 7 views
0

私は、ユーザーにStudent NETIDの入力を求め、5つの課題にどのような成績を加え、中期と最終に得た成績を入力するかを尋ねるプログラムを持っています。その後、それらを加えて、その学生の平均成績をテーブル形式で表示するために分割します。10人の平均成績を取得する - python

私がしなければならないことは、その全体プロセスを9回以上繰り返します。だから本質的に、病気は9人の生徒に同じ入力を求めています。病気はテーブル形式で表示する必要があります。

私の質問は、私が現在「x」時間を持っているプロセスをどのようにループして、すべての学生の平均を表示するのかということです。

# x holds the list of grades 
    x = [] 

    # count of assignments 
    assignments = 5 

    # Ask for a student ID from user 
    NETID = int(input('Enter your 4 digit student NET ID: ')) 

    # fill list with grades from console input 
    x = [int(input('Please enter the grade you got on assignment {}: '.format(i+1))) for i in  range(assignments)] 

    midTermGrade = int(input('Please enter the grade you got on you Mid-Term: ')) 
    finalGrade = int(input('Please enter the grade you got on you Final: ')) 

    # count average, 
    average_assignment_grade = (sum(x) + midTermGrade + finalGrade)/7 

    print() 
    print('NET ID \t Average Final Grade') 
    print('---------------------------------') 

    for number in range(1): 
     print(NETID, '\t\t', format(average_assignment_grade, '.1f'),'%') 

main() 

そしてこれは、コンソール上でどのように見えるかです::

これが今の私のコードです

My Python Program

+1

関数内ですべてをラップし、 'for'ループを使って呼び出すことができますか? – gabra

答えて

2

あなたは本当に困難な部分をしました。私はなぜあなたが平均のループをできなかったのか分かりません。とにかく:

student_count = 5; 
A = [student_count] 

for id_student in range(student_count):  
    print("STUDENT #", id_student+1) 

    # x holds the list of grades 
    x = [] 

    # count of assignments 
    assignments = 5 

    # Ask for a student ID from user 
    NETID = int(input('Enter your 4 digit student NET ID: ')) 

    # fill list with grades from console input 
    x = [int(input('Please enter the grade you got on assignment {}: '.format(i+1))) for i in  range(assignments)] 

    midTermGrade = int(input('Please enter the grade you got on you Mid-Term: ')) 
    finalGrade = int(input('Please enter the grade you got on you Final: ')) 

    # count average, 
    average_assignment_grade = (sum(x) + midTermGrade + finalGrade)/7 

    print() 
    print('NET ID | Average Final Grade') 
    print('---------------------------------') 

    for number in range(1): 
     print(NETID, " | ", format(average_assignment_grade, '.1f'),'%') 

    A.append(average_assignment_grade); 

grades_sum = sum(A) 
grades_average = grades_sum/5; 
print("SUM OF ALL STUDENTS = " + grades_sum) 
print("AVERAGE OF ALL STUDENTS = " + grades_average) 

アップデート:上で示唆ように私はあなたのためにそれを行うことはありませんコーディングサービスではないので、あなたは、他のその機能により、単一の学生とループのための機能を確認する必要があり、私はあなたが考えを持っていると思う。

+0

これは素晴らしいですが、どのようにしてそれを行うと、すべての学生のNETIDと成績を一度に表示します。したがって、5回ループして、表にデータを表示します。今すぐ結果を表示してから、入力をもう一度尋ねてください – David

+0

次に、各生徒を最初のループ内に別々に保存して保存します。 –

関連する問題