Python 为什么我会得到一个';浮动';对象不可下标错误

Python 为什么我会得到一个';浮动';对象不可下标错误,python,Python,我希望输入行数(学生数)和列数(测验数),以定义有多少学生参加多少测验(确切地说是矩阵)。 因此,当我在每个学生的测验中输入每个学生的测验分数后,预计我会得到每个学生平均分数的计算结果(exe:student1 avg=quiz1+quiz2+quiz3/3,对于学生2和3,依此类推),并且也会得到每个测验平均分数的计算结果(quiz1 avg=stu1+stu2+stu3/quiz2,依此类推,对于测验2,3,4…) 但现在我还没有得到,因为它表明我有一个“float”对象是不可下标的错误。为

我希望输入行数(学生数)和列数(测验数),以定义有多少学生参加多少测验(确切地说是矩阵)。 因此,当我在每个学生的测验中输入每个学生的测验分数后,预计我会得到每个学生平均分数的计算结果(exe:student1 avg=quiz1+quiz2+quiz3/3,对于学生2和3,依此类推),并且也会得到每个测验平均分数的计算结果(quiz1 avg=stu1+stu2+stu3/quiz2,依此类推,对于测验2,3,4…) 但现在我还没有得到,因为它表明我有一个“float”对象是不可下标的错误。为什么呢? 这是完整的代码

R = int(input("Enter the number of rows:"))
C = int(input("Enter the number of columns:"))


matrix = []
print("Enter the entries rowwise:")
for i in range(R):
    a = []
    for j in range(C):
         a.append(int(input("Student " + str(i+1) + " Quiz " + str(j+1)+":")))
    matrix.append(a)

for i in range(R):
    T1 = 0
    for j in range(C):
        T1 += matrix[i][j]
    matrix[i] = T1/C
    print()

for i in range(R):
    print("The average mark for student", i+1, "is", matrix[i])



for j in range(C):
    T2 = 0
    for i in range(R):
        T2 += matrix[i][j]  #This is where i get float object is not subscriptable error
    matrix[j] = T2/R
    print()

for j in range(C):
    print("The average mark for quiz", j+1, "is", int(matrix[j]))


    
这个过程用单个数字(计算出的平均值)迭代地替换列表中的每一行(
matrix[i]
)。所以在循环之后,我们现在有一个1D列表,而不是2D列表

因此,当我们试图以相同的方式将矩阵中的“列”相加以获得测验平均值时,我们得到的数据无效


错误修正:使用一个单独的列表来存储结果平均值。或者,您可以在计算时打印它们,而不是将它们存储在任何地方。

这意味着您正在尝试索引一个浮点,例如
5.8[2]
matrix[i]
在该点是一个浮点。当然,您有解决方案来解决这个问题吗?当您执行
matrix[i]=T1/C
时,您希望它如何工作?提示:作业前矩阵[i]的类型是什么?后面是什么类型的?当您对每行执行此操作时,您的
矩阵发生了什么变化?这是否回答了您的问题?
for i in range(R):
    T1 = 0
    for j in range(C):
        T1 += matrix[i][j]
    matrix[i] = T1/C
    print()