【发布时间】:2021-02-16 20:16:57
【问题描述】:
我是一个刚刚了解函数和类的新手。我使用带有 while 循环的 Class 创建了一个代码,该循环允许输入四个科目中五个学生的分数。现在我不知道如何将所有学生的平均分数相加,并找到五个学生的总平均分。我在这里提供完整的代码。请提出问题的所有改进和解决方案。
entry = 1
while entry <=5:
class Marks():
def __init__(self, name, english_marks, hindi_marks, science_marks, economics_marks):
self.name = name
self.english_marks = english_marks
self.hindi_marks = hindi_marks
self.science_marks = science_marks
self.economics_marks = economics_marks
def output(self):
print("\n")
print("Hi "+self.name.title())
avg_marks = (self.english_marks + self.hindi_marks + self.science_marks + self.economics_marks)/4
print("Your average score is ", avg_marks)
print("\n")
name = input("Enter your name: ")
english_marks = int(input("Enter your English score: "))
hindi_marks = int(input("Enter your Hindi score: "))
science_marks = int(input("Enter your science score: "))
economics_marks = int(input("Enter your economics score: "))
j = Marks(name, english_marks, hindi_marks, science_marks, economics_marks)
j.output()
entry = entry + 1
【问题讨论】:
-
一种简单的方法是定义一个空列表,并将每个学生每次迭代的平均分数附加到它上面。最后,只需执行
all_avg = sum(name_of_list)/5之类的操作(将 5 替换为学生人数),还可能需要将结果格式化为小数/有效数字。 -
在循环中定义一个类是个坏主意。
-
谢谢@JackTheCrab。附加到一个空列表解决了我的问题。尽管即便如此,我也不得不挣扎了一段时间。现在我终于能够使用来自多个条目的数据了。