我擅长Python。我刚开始上课,我试着做一个班。它似乎不工作,但它给我的错误每次。这个代码是用来计算学生的平均数的。抱歉,如果很多代码是错误的,这是一个试运行为我。。。泰
我的代码:
class studentgrades:
def __init__(self,grades,num_of_grades,grades_total):
self.grades = []
self.num_of_grades = num_of_grades
self.num_of_grades = 0
self.grades_total = grades_total
self.grades_total = 0
def studentaverage(self,average):
self.average = average
for i in grades:
self.num_of_grades += 1
for i in grades:
self.grades_total += i
self.average = self.grades_total / self.num_of_grades
student1 = studentgrades(100,0,0)
print student1.studentaverage
这是我的错误信息:
<bound method studentgrades.studentaverage of <__main__.studentgrades instant at 0x0229CE90>>
首先,将
self
变量初始化为空列表,将0
变量初始化为__init__
方法的参数。通过立即将参数重置为nothing,这实际上会使传递给类的任何参数无效。你知道吗另外,要调用类的方法,请向它传递所需的参数数。如果调用一个没有参数的方法,仍然需要左括号和右括号,例如
student1.studentaverage()
。你知道吗我会这样做的。你知道吗
这样,你只需通过a班的成绩表。你知道吗
更好的是,使用sounddefence的建议,您可以通过调用
sum
和len
方法中grades
列表的grades
方法,消除在__init__
方法中定义另外两个变量的需要。你知道吗亚当·斯密是对的。您需要修改studentaverage函数以添加返回值:
然后修改打印语句:
我发现的一点是:首先,代码的意图不正确;其次,不能调用像
student1.studentaverage
这样的函数。相反,它必须是student1.studentaverage(param)
。用参数替换param。你知道吗相关问题 更多 >
编程相关推荐