2016-01-17 40 views
0

我是Python编程新手。我有这个任务:Python基本编程 - 二维列表

对于本实验,您将使用Python中的二维列表。执行以下操作:

  1. 写出一个用下面的头 DEF sumColumn返回所有元素的和在一个指定列以矩阵的函数(矩阵,columnIndex)
  2. 写功能,显示逐行显示矩阵中的元素,其中每行中的值显示在单独的行上(请参见下面的输出)。输出的格式必须与示例输出中的格式相匹配,其中行的值由单个空格分隔。

  3. 编写读取3×4矩阵并显示每列总和的测试程序(即主函数)。总和的格式应为小数点后一位有效数字。必须按照下面的示例程序运行,输入来自用户的输入,其中输入逐行读取,并且行中的值由单个空格分隔。

示例程序运行如下:

输入一个3乘4矩阵行0列:2.5 3 4 1.5 输入一个3乘4矩阵行对行1:1.5 4 2 7.5 输入一个3乘4矩阵行对行2: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

元素的总和为colu MN 0是7.5 萨姆为第1列的元素为第2列元素的8.0 萨姆为第3列的元素为7.0 萨姆是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]] 

我在做什么错?

+1

*我有这样的任务*是立即关闭。 –

回答

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()