Python 尝试获取函数以获取4个测试分数,并确定320分中的学生平均分数

Python 尝试获取函数以获取4个测试分数,并确定320分中的学生平均分数,python,Python,在第5行,我得到了错误“int对象不可编辑” 我不知道为什么 我正在尝试编写一个包含函数的程序,函数的这一部分假设在80分中各取4分,计算平均分数,然后取平均值,乘以该班家庭作业价值的百分比,但我甚至不能让这一部分的课程得到平均的家庭作业分数。我对python不是很在行,而且如果它的格式不正确,我提前表示歉意,但是非常感谢您的帮助。对不起,但是(在我看来)您的代码有点凌乱。相反,请尝试: def getExamPoints(examPoints): for examPoints in r

在第5行,我得到了错误“int对象不可编辑” 我不知道为什么

我正在尝试编写一个包含函数的程序,函数的这一部分假设在80分中各取4分,计算平均分数,然后取平均值,乘以该班家庭作业价值的百分比,但我甚至不能让这一部分的课程得到平均的家庭作业分数。我对python不是很在行,而且如果它的格式不正确,我提前表示歉意,但是非常感谢您的帮助。

对不起,但是(在我看来)您的代码有点凌乱。相反,请尝试:

def getExamPoints(examPoints):
    for examPoints in range(1, 5):
        examPoints = input("Please enter students exam scores: ")
    totalPoints = input("Please enter total possible points: ")
    print("The total exam points are: " + sum(int(examPoints)))
    avg = float(int(str(examPoints))/int(totalPoints))
    print("the average is: ", avg)

sum()所查找的是一个iterable对象,如列表,并将其中的所有内容相加。由于examPoints定义为整数,因此它是不可编辑的。相反,请创建一个单独的列表,并将输入放在其中。

examPoints
不是原始代码中的输入列表,只是一个变量,它会随着用户输入循环的每次迭代而被覆盖:

def getExamPoints(examPoints):
    points = []
    for examPoints in range(1, 5):
        points = points + [int(input("Please enter students exam scores: "))]
    totalPoints = input("Please enter total possible points: ")
    print("The total exam points are: " + sum(examPoints))
    avg = float(int(str(examPoints))/int(totalPoints))
    print("the average is: ", avg)
相反,您希望单独保留每个输入。 e、 g.通过将其添加到列表中:

for examPoints in range(1, 5):
    examPoints = input("Please enter students exam scores: ")
输入文本到整数的转换可以在追加时完成(无法转换的输入立即返回错误给用户),也可以在执行求和时使用列表理解或映射函数完成:

examPoints = []
for _ in range(1,5):
    # add input to list after converting it to an integer
    examPoints.append(int(input("Please enter students exam scores: ")))
...

谢谢你的格式化
# sum version
sum([int(v) for v in examPoints])
# map version
sum(map(int, examPoints))