我是Python编程的新手。我有这个任务:
在本实验中,您将使用Python中的二维列表。执行以下操作:
编写一个逐行显示矩阵元素的函数,其中每行的值显示在一个单独的行上(参见下面的输出)。输出的格式必须与示例输出中的格式相匹配,其中行上的值由单个空格分隔。
编写一个读取3×4矩阵的测试程序(即主函数)并显示每列的总和。总和应格式化为小数点后正好包含一个有效数字。必须输入用户的输入,如下面的示例程序运行,其中逐行读取输入,并且行中的值由单个空格分隔。
示例程序运行如下:
为第0行输入一个3乘4的矩阵行:2.5 3 4 1.5 为第1行输入3乘4矩阵行:1.5 4 2 7.5 为第2行输入3乘4矩阵行:3.5 1 1 2.5
矩阵是 2.5 3.0 4.0 1.5 1.5 4.0 2.0 7.5 3.5 1.0 1.0 2.5
第0列的元素总和为7.5 第1列的元素总和为8.0 第2列的元素总和为7.0 第3列的元素总和为11.5
这是我到目前为止的代码:
def sumColumn(matrix, columnIndex):
total = (sum(matrix[:,columnIndex]) for i in range(4))
column0 = (sum(matrix[:,columnIndex]) for i in range(4))
print("The total is: ", total)
return total
def main ():
for r in range(3):
user_input = [input("Enter a 3-by-4 matrix row for row " + str(r) + ":", )]
user_input = int()
rows = 3
columns = 4
matrix = []
for row in range(rows):
matrix.append([numbers] * columns)
print (matrix)
main()
it prints out:
[[0, 0, 0, 0]]
[[0, 0, 0, 0], [0, 0, 0, 0]]
[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
我做错了什么?
答案 0 :(得分:0)
您可能只是将其用作参考,否则您将永远不会学到任何东西
PROMPT = "Enter a 3-by-4 matrix row for row %s:"
def sumColumn(matrix, columnIndex):
return sum([row[columnIndex] for row in matrix])
def displayMatrix(matrix):
#print an empty line so that the programs output matches the sample output
print
print "The matrix is"
for row in matrix:
print " ".join([str(col) for col in row])
#another empty line
print
for columnIndex in range(4):
colSum = sumColumn(matrix, columnIndex)
print "Sum of elements for column %s is %s" % (columnIndex, colSum)
def main ():
matrix = [map(float, raw_input(PROMPT % row).split()) for row in range(3)]
displayMatrix(matrix)
if __name__ == "__main__":
main()