Well, I tried for an exercise writing a python code that multiplies matrices and prints them. I keep getting the 'NoneType' object is not subscriptable error. do you know whats my mistake?
I think I somehow got the type wrong but I can't figure out how
def main():
matrix = input_matrix()
print("Please enter your second matrix:")
matrix_2 = input_matrix()
print_matrix(matrix)
print()
print_matrix(matrix_2)
print_multiplied_matrix(multiplier_matrix(matrix, matrix_2), len(matrix[0]))
def multiplier_matrix(matrix_1, matrix_2):
num_of_rows_1 = len(matrix_1)
num_of_columns_1 = len(matrix_1[0])
num_of_columns_2 = len(matrix_2[0])
multiplied_matrix = [[0 for x in range(num_of_columns_2)] for y in range(num_of_rows_1)]
for a in range(num_of_rows_1):
for b in range(num_of_columns_2):
element = 0
for k in range(num_of_columns_1):
element += matrix_1[a][k] * matrix_2[k][b]
multiplied_matrix[a][b] = element
def print_matrix(matrix):
num_of_rows = len(list(matrix))
num_of_columns = len(list(matrix)[0])
for i in range(num_of_rows):
for j in range(num_of_columns):
print(matrix[i][j], end=' ')
print()
def print_multiplied_matrix(matrix, x):
for i in range(x):
for j in range(x):
print(matrix[i][j], end=' ')
print()
def input_matrix():
print("Hello, please enter the number of rows you'd like to have:")
h = int(input())
print("Hello, please enter the number of columns you'd like to have:")
w = int(input())
print()
matrix = [[0 for x in range(w)] for y in range(h)]
for i in range(h):
for j in range(w):
print("what do you want element " + str(i) + "," + str(j) + " to be?")
input_elem = int(input())
matrix[i][j] = input_elem
print()
return matrix
main()
Thank you