gpt4 book ai didi

python - 在 Python 3 中计算列表的平均值

转载 作者:太空宇宙 更新时间:2023-11-04 10:38:57 32 4
gpt4 key购买 nike

我目前正在尝试计算由类中的方法创建的列表的平均值。首先,所有信息都传递给一个记录/返回从主函数传递的数据的类。问题是我从主函数传入什么来首先检索 self._marks 列表,然后对其进行操作以返回平均值。另外,我是否为 calculateAverageMark 部分使用了正确的代码?提前致谢

代码如下:

class Student :
def __init__(self, id):
self._studentId = id
self._marks = []
##
# Converts the student to a string .
# @return The string representation .
#

# Sets the student's ID.
# @param newId is the student's new ID.
#
def setStudentId(self, id):
self._studentId = id

##
# Gets the student's ID.
# @return the student's ID
#
def getStudentId(self, newId):
return self._newId

##
# Appends a mark to the marks list
#
def addMark(self, mark):
self._marks.append(mark)

def __repr__(self) :
# Build a string starting with the student ID
# followed by the details of each mark .
s = "Student ID :" + self._studentId + " "
if len(self._marks) == 0 :
s += " <none \n>"
else :
for mark in self._marks :
s += " Course Module: " + mark.getModule() + " Raw Mark: " + str(mark.getRawMark())

return s

##
# Method to calculate the students average mark
#
def calculateAverageMark(self):
totalMarks = 0
count = 0
for mark in self._marks :
if mark == 0 :
count = count
else :
count = count + 1

totalMarks = totalMarks + mark
average = totalMarks / count

return average

最佳答案

您当前的代码不正确,因为您在每次迭代中都除以 count(并且在 count 之前实际上是标记数)。使用值列表计算平均值非常容易:

def calculateAverageMark(self):
if self._marks: # avoid error on empty list
return sum(self._marks) / float(len(self._marks))

你不需要传入任何东西;所有实例属性都可以通过 self 获得。除非你被特别告知要从平均分中排除零分,否则你应该计算它们。

关于python - 在 Python 3 中计算列表的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21894224/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com