这是详细说明sshashank124的答案并添加用户输入功能。我还添加了一些错误处理代码(while循环),因此如果用户输入字符串而不是成绩,它将再次询问:
请记住,请勿在提交时使用此确切代码。这可能是您班级中的完整性违规行为。尝试从头开始重写代码并告诉我哪些方法不顺利
你在代码中做错了,就是你自己把两个for循环。它们需要嵌套。
error = "Non integer input. Try again>> " #Error message
def isfloat(value): #Functon to check if a number can be a grade
try:
float(value)
return True
except ValueError:
return False
n = raw_input("Enter number of students>> ") #Number of students
while not n.isdigit():
n = raw_input(error)
g = raw_input("\nEnter number of grades per student>> ") #Number of Grades per student
while not g.isdigit():
g = raw_input(error)
grades = [] #The two dimensional list
#Receiving input from the user
for a in range(int(n)):
temp = []
print "Student %i" % (a+1)
for b in range(int(g)):
grade = raw_input("Grade %i>> " % (b+1))
while not isfloat(grade):
grade = raw_input(error)
temp.append(float(grade))
grades.append(temp)
students = [sum(stud)/float(len(stud)) for stud in grades]
#Returning output
print students
print sum(students)/float(len(students))