获得10名学生的平均成绩-python [英] Get average grade for 10 students - python

查看:43
本文介绍了获得10名学生的平均成绩-python的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个程序,要求用户输入学生NETID,然后输入5个作业的分数以及期中和期末的分数.然后将它们相加并除以得到以表格形式显示的学生平均成绩.

I have a program that asks a user to enter a Student NETID and then what grades they got on 5 assignments plus the grade they got on the mid-term and final. It then adds them and divides to get that students average grade which displays in table format.

我需要做的是在整个过程中再循环9次.因此,从本质上讲,病态会再要求9个学生输入相同的输入,然后病态就需要以表格格式显示.

What I need to do, is loop through that whole process 9 more times. So essentially, Ill be asking 9 more students the same input, which then Ill need to display in the table format.

我的问题是我该如何遍历目前"x"次的过程,然后显示所有学生的平均值.

My question is how would I loop through the process that I have right now 'x' amount of times, then display the average of all students.

这是我现在的代码:

   # 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()

这是它在控制台上的外观:

And this is how it looks on console:

推荐答案

您确实做了最难的部分.我不明白为什么您不能如此平均的循环.无论如何:

You really did the hardest part. I don't see why you couldn't so the loop of the average. Anyway:

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)

更新:如上所述,您应该为一个学生创建一个函数,然后在另一个学生中循环浏览该函数,因为SO不是编码服务,因此我不会为您这样做.我想你知道这个主意.

Update: As suggested above, you should make a function for a single student and loop through that function in another, since SO is not a coding service I won't do that for you, but I think you got the idea.

这篇关于获得10名学生的平均成绩-python的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆