【问题标题】:Python Basic Programming - 2D listsPython 基础编程 - 2D 列表
【发布时间】:2016-01-17 16:15:35
【问题描述】:

我是 Python 编程新手。我有这个任务:

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

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

  3. 编写一个读取 3 X 4 矩阵并显示每列总和的测试程序(即 main 函数)。总和应格式化为在小数点后恰好包含一位有效数字。用户的输入必须像下面运行的示例程序一样输入,其中输入是逐行读取的,并且一行中的值由单个空格分隔。

示例程序运行如下:

为第 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]]

我做错了什么?

【问题讨论】:

  • 我有这个任务是立即关闭。

标签: python list function matrix


【解决方案1】:

你可能应该把它作为参考,否则你将永远学不到任何东西

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

【讨论】:

    猜你喜欢
    • 2010-10-07
    • 1970-01-01
    • 2018-09-04
    • 1970-01-01
    • 2015-12-26
    • 2011-03-09
    • 1970-01-01
    • 2017-12-10
    • 2018-09-08
    相关资源
    最近更新 更多