【发布时间】:2021-04-27 16:26:40
【问题描述】:
我想在 python 中获取每个科目的分数并返回其平均值和总和。我知道如果我收到 4 个参数而不是平均分母应该是 4,但是我怎样才能使它成为由输入数量改变的固定代码?,而不仅仅是计数数字和类型 4。我尝试了 Len(self) 或使用 for 循环计数,但 Len 会出错,而且 for 循环也不是那么容易。
class score:
def __init__(self, language, math, english, science):
self.language = language
self.math = math
self.english = english
self.science = science
...
def sum_scores(self):
result = self.language + self.math + self.english + self.science
return result
def average(self):
average = self.sum_scores()/4 # Here is the problem!
return average
这是我在堆栈上的第一个问题。很抱歉我糟糕的英语和愚蠢的问题。
【问题讨论】:
-
是否需要有固定数量的命名参数?或者你可以有可变数量的参数吗?是要求你知道每个分数的主题,还是只知道分数就可以?
-
我不明白这个问题。由于
__init__有四个强制 参数(不包括self),所以正确的分母将始终是4。 -
@timgeb 面对添加新分数仍然很脆弱,因为除了实际添加新分数之外,您还必须记住更新
4(或常量)的使用。 -
@chepner 公平点
-
哦!所需的代码是因为如果我输入 5 个或更多的输入,那么分母应该会改变。所以我不想每次收到更多输入时都通过输入数字来更改分母!