2017-09-05 27 views
-2
def new_matrix(): 
    Rows=int(input("enter number of rows:")) 
    columns=int(input("enter number of columns:")) 
    matrix=[[0]*Rows for _ in range(columns)] 
    print (matrix) 
    for k in range (columns): 
     for p in range(Rows): 
      matrix[k][p]=int(input("Enter elements in matrix:")) 
    print (matrix) 
new_matrix() 

輸出爲方陣錯誤:此代碼工作好方陣,但顯示其它的矩陣

enter number of rows:2 
enter number of columns:2 
[[0, 0], [0, 0]] 
Enter elements in matrix:1 
Enter elements in matrix:2 
Enter elements in matrix:3 
Enter elements in matrix:4 
[[1, 2], [3, 4]] 

錯誤非方陣:

enter number of rows:1 
enter number of columns:4 
[[0], [0], [0], [0]] 
Enter elements in matrix:1 
Enter elements in matrix:2 

Traceback (most recent call last): 
    File "C:/Users/kcgov/PycharmProjects/making_matrix/creating_a_matrix.py", line 10, in <module> 
    new_matrix() 
    File "C:/Users/kcgov/PycharmProjects/making_matrix/creating_a_matrix.py", line 8, in new_matrix 
    matrix[k][p]=int(input("Enter elements in matrix:")) 
IndexError: list assignment index out of range 
+1

我無法重現你的錯誤。這個對我有用。 – DyZ

+0

我也沒有遇到任何錯誤,但很顯然,您已顛倒了「行」和「列」的標準含義。 –

+0

@MrGeek哎呀... – DyZ

回答

2

你需要切換在矩陣初始化中包含列的行,並且還需要切換循環範圍,第一個必須循環遍歷行,而第二個迭代遍歷每行中的列:

def new_matrix(): 
    Rows=int(input("enter number of rows:")) 
    columns=int(input("enter number of columns:")) 
    # columns, Rows 
    matrix=[[0]*columns for _ in range(Rows)] 
    print (matrix) 
    # Rows, columns 
    for k in range(Rows): 
     for p in range(columns): 
      matrix[k][p]=int(input("Enter elements in matrix:")) 
    print (matrix) 
new_matrix() 

測試用例#1:(正方形矩陣,行數= colums)

enter number of rows: 2 
enter number of columns: 2 
[[0, 0], [0, 0]] 
Enter elements in matrix: 1 
Enter elements in matrix: 2 
Enter elements in matrix: 3 
Enter elements in matrix: 4 
[[1, 2], [3, 4]] 

測試用例#2:(行< colums)

enter number of rows: 1 
enter number of columns: 4 
[[0, 0, 0, 0]] 
Enter elements in matrix: 1 
Enter elements in matrix: 2 
Enter elements in matrix: 3 
Enter elements in matrix: 4 
[[1, 2, 3, 4]] 

測試案例#3:(行> colums)

enter number of rows: 4 
enter number of columns: 1 
[[0], [0], [0], [0]] 
Enter elements in matrix: 1 
Enter elements in matrix: 2 
Enter elements in matrix: 3 
Enter elements in matrix: 4 
[[1], [2], [3], [4]] 
+0

謝謝你先生 –

+0

@KrishnaChaitanya作爲這篇文章的作者,你可以接受最好的答案,這是最有幫助的答案,勾選選票下的選中標記,使其變綠。 –