<p>这是为了详细说明sshashank124的答案并添加用户输入函数。我还添加了一些错误处理代码(while循环),因此如果用户输入字符串而不是等级,它将再次询问:</p>
<p><strong>请记住,不要将此代码用于提交。这可能是在你的班级里违反了诚信原则。试着从头开始重写代码,并指出哪些地方做得不好</strong></p>
<p>你在代码中犯的错误是,你把两个for循环单独放在了一起。它们需要嵌套。在</p>
<pre><code>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
print
#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)
print
students = [sum(stud)/float(len(stud)) for stud in grades]
#Returning output
print students
print sum(students)/float(len(students))
</code></pre>