用python计算平均分数?

用python计算平均分数?,python,while-loop,Python,While Loop,由于某种原因,当我平均分数时,它不是正确的答案,即通常是2%或540,即使这不是算术答案。有时有效,有时无效!同样,代码在VS中运行,但在IDLE中显示语法错误。我不知道他们是否有关联,但无论如何,我不知道如何修复它。感谢您的帮助 number=1 quiz=1 mini=1 peer=1 sum=0 while number <51: assignment = int(input("What's your grade for assignment "+ str

由于某种原因,当我平均分数时,它不是正确的答案,即通常是2%或540,即使这不是算术答案。有时有效,有时无效!同样,代码在VS中运行,但在IDLE中显示语法错误。我不知道他们是否有关联,但无论如何,我不知道如何修复它。感谢您的帮助

number=1
quiz=1
mini=1
peer=1
sum=0
while number <51:
    assignment = int(input("What's your grade for assignment "+ str(number) + "?"))
    number = number + 1
    sum += assignment
    assigns = (sum // 500)*100
    assigns2 = round(assigns, 2)
while peer <4:
    peers = int(input("What is your grade for peer assignment "+ str(peer) + "?"))
    peer = peer + 1
    sum += peers
while quiz <11:
    quizzes = int(input("What's your grade for quiz "+ str(quiz) + "?"))
    quiz = quiz + 1
    sum += quizzes
    quiznos = (sum // 100)*100
    quiznos2 = round(quiznos, 2)
while mini <11:
    minisss = int(input("What is your grade for mini-project "+ str(mini) + "?"))
    mini = mini + 1
    sum += minisss
    miniz = (sum // 200)*100
    miniz2 = round(miniz, 2)
final = int(input("What was your score on the final? "))
print("CALCULATING YOUR GRADE...")
gradez = (sum/1200)*100
grader = round(gradez, 2)
print("*******")
print("The total possible points was 1100, and your total is",sum,"points! Your grade is", grader, "percent!")
print("*******")
if grader >= 90:
    print("You've gotten an A!")
elif grader >= 80:
    print("You've gotten a B!")
elif grader >= 70:
    print("You've gotten a C!")
elif grader >= 60:
    print("That's a D, sorry man!")
elif grader >= 0:
    print("You've failed the class...")
print("*******")
print("You got a", assigns2, "percent for assignments!")
print("*******")
print("You got a", quiznos2, "percent for quizzes!")
print("*******")
print("You got a", miniz2, "percent for mini projects!")
print("*******")
examity = (final / 300)*100
examity2 = round(examity, 2)
print("Your final was", final, "out of 300, for a grade of", examity2, end="!")
number=1
测验=1
mini=1
对等=1
总和=0
当数字=60时:
打印(“那是D,对不起,伙计!”)
elif分级器>=0:
打印(“您的课程不及格…”)
打印(“*******”)
打印(“您得到了”,assigns2,“分配百分比!”)
打印(“*******”)
打印(“你得了a”,测验2,“测验百分比!”)
打印(“*******”)
打印(“你得到了”,miniz2,“迷你项目的百分比!”)
打印(“*******”)
考试=(最终考试/300)*100
examity2=圆形(examity,2)
打印(“你的期末考试是”,期末考试,“满分300分,成绩为”,examity2,end=“!”)

要计算作业、测验和小型项目的分数百分比,您使用的是相同的总和变量。这意味着,在计算测验分数时,测验分数仍会添加到sum变量中,而在计算迷你项目分数时,测验和测验分数会添加到sum变量中,从而导致分数膨胀。简言之,使用sum变量有两种相互冲突的方式——既可以计算总点数,也可以存储每个特定部分的单独总和值。如果我是你,我会创建一个单独的total points变量,并且可能为每个部分创建具有不同名称的单独sum变量(或者为每个部分将sum变量重置为0)。此外,我认为当你计算学生的总成绩时,你可能遗漏了总分中的最终分数,当你计算总成绩时,你除以1200,但你说总的最高分数是1100,我不确定同伴作业如何计入总分


对于语法错误,可能是因为您在不同环境中运行的Python版本不同。如果是这样,则可能与上次打印语句中的end参数有关。这篇文章可能很有用:.

Its any data://我只输入收到的分数,例如,10、10、5、10等。这段代码很难理解。考虑调整你的变量名来实际描述他们是什么。e、 g.不要叫它
miniss
,而是叫它
mini\u proj\u input
什么的。第二,您正在对整数使用
/
,这是底层除法(假设这是Python3.x)。如果要将值作为特定类型(例如
浮点
双精度
)进行处理,则应将其作为特定类型进行强制转换或存储。