用python求学生平均成绩_用python计算学生/班级平均数

本文展示了一种使用Python管理学生数据并计算平均成绩的方法。通过定义Student类,可以方便地存储和处理学生的成绩信息。类中包含了计算平均分和对应字母等级的功能,并提供了收集整个班级学生信息的主程序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我想这已经接近你想要的了。它定义了一个Student类,使数据存储和处理更易于管理。class Student(object):

def __init__(self, name):

self.name, self.grades = name, []

def append_grade(self, grade):

self.grades.append(grade)

def average(self):

return sum(self.grades) / len(self.grades)

def letter_grade(self):

average = self.average()

for value, grade in (90, "A"), (80, "B"), (70, "C"), (60, "D"):

if average >= value:

return grade

else:

return "F"

def main():

print()

print('Collecting class student information')

a_class = [] # "class" by itself is a reserved word in Python, avoid using

while True:

print()

print('{} students in class so far'.format(len(a_class)))

another_student = input('Do you have another student to enter (y/n) ? ')

if another_student[0].lower() != 'y':

break

print()

student_name = input('What is the student\'s name? ')

a_class.append(Student(student_name))

print()

print('student :', student_name)

print('-------------------')

number_of_tests = int(input('Please enter the number of tests : '))

for test_num in range(1, number_of_tests+1):

print('test number {}'.format(test_num), end='')

score = float(input(' : '))

if score < 0: # stop early?

break

a_class[-1].append_grade(score) # append to last student added

print_report(a_class)

def print_report(a_class):

print()

print('Class Report')

print()

for student in sorted(a_class, key=lambda s: s.name):

print('student: {:20s} average test score: {:3.2f} grade: {}'.format(

student.name, student.average(), student.letter_grade()))

print()

print('The class average is {:.2f}'.format(class_average(a_class)))

def class_average(a_class):

return sum(student.average() for student in a_class) / len(a_class)

main()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值