1 回答

TA贡献1877条经验 获得超6个赞
你的代码有很多问题。其中之一是
for i in range(1, a):
如果您想要最小值或最大值,这部分没有意义。您需要遍历成绩列表。
mark并且student考虑到它们可以分别替换为sum和,也是不必要的len。
整个代码似乎缺乏适当的结构。这是一个示例实现。如果不允许使用sumor len,您可以将自己的mark和student方法带回来,但尽量不要弄乱并保持可读性:
def maxx(grades):
if (not grades): # if empty, we let the caller know
return None
res = grades[0] # we know the list is not empty
for i in grades:
if i > res:
res = i
return res
def minn(grades):
if (not grades):
return None
res = grades[0]
for i in grades:
if i < res:
res = i
return res
def main():
grades = [] # list of grades
while (True):
grade = int(input("Enter Mark: "))
if (grade < 0): break
grades.append(grade)
student_cnt = len(grades)
total = sum(grades)
print("Exit")
print("Total students :", student_cnt)
print("The total marks is:", total)
print ("The average marks is:", total / student_cnt)
print("The max marks is :", maxx(grades))
print("The min marks is :", minn(grades))
if __name__ == "__main__":
main()
输入输出:
Enter Mark: 30
Enter Mark: 20
Enter Mark: 10
Enter Mark: 40
Enter Mark: -1
Exit
Total students : 4
The total marks is: 100
The average marks is: 25.0
The max marks is : 40
The min marks is : 10
添加回答
举报