2016-04-27 13 views
0

主に以下の機能を呼び出すように私はプログラムを書いたプログラム:パイソン3-マトリックス入力

getMatrix - 行

によってマトリクスの行を印刷する - 3×3行列

printMatrixを作成し、返します

sumRow - 行列の1行の要素の合計を返します(行列と行インデックスを渡します)

私が直面している問題は、入力を1回ではなく2回求めていることです。

def getMatrix(): 
    matrix = [] 
    numberOfRows = eval(input("Enter the number of rows: ")) 
    numberOfColumns = eval(input("Enter number of columns: ")) 
    for row in range(numberOfRows): 
     matrix.append([]) 
     for column in range(numberOfColumns): 
     value = eval(input("Enter an element and press enter: ")) 
     matrix[row].append(value) 
    return matrix 

# Print 2 dimensional list 
def printMatrix(matrix): 
    matrix = getMatrix() 
    for row in range(len(matrix)): 
     for column in range(len(matrix[row])): 
     print(matrix[row][column], end = " ") 
     print() 

# Add each element in row to total 
def sumRow(matrix): 
    for row in range(len(matrix[0])): 
     total = 0 
     for column in range(len(matrix)): 
     total += matrix[row][column] 
     print("Sum for matrix", row, "is", total) 

def main(): 
    matrix = getMatrix() 
    printMatrix(matrix) 
    total = sumRow(matrix) 
main() 

答えて

0

mainで:

matrix = getMatrix() 
printMatrix(matrix) 

printMatrixに:あなたは方法によって、渡された直後にマスクmatrix引数

matrix = getMatrix() 

getMatrix

matrix = [] 
numberOfRows = eval(input("Enter the number of rows: ")) 
numberOfColumns = eval(input("Enter number of columns: ")) 

あなたが道ではなく、eval()により、int()を使用する必要があります。

getMatrix()への2つの呼び出しがあります。これは2つの入力要求を意味します。 printMatrixからmatrix = getMatrix()を削除します。とにかく、その機能が果たそうとしていることではありません。

関連する問題