J.Gladney - 1 year ago 110

Python Question

So I'm building a matrix calculator without NumPy and I have a limited but working model. However that model is very rough and I would like to improve upon it as well as expand its functionality to be able to compute multiple matrices and interact with each other (multiplication for example).

A problem I have quickly run into with my very limited experience with Python is the passing of variables between multiple functions (parameters I believe they're called). Here is what I have:

`def matrixGenerator1():`

rows = int(input("\nHow many rows are in the matrix?\n\n:"))

columns = int(input("\nHow many columns are in the matrix?\n\n:"))

matrix1 = [[0 for x in range(columns)] for y in range(rows)]

for y in range(rows):

for x in range(columns):

matrix1[y][x] = int(input("\nWhat is the entry?\n\n:"))

print("\nThe original matrix is...")

for y in range(rows):

print("\n")

for x in range(columns):

print(format(matrix1[y][x], "5d"), end="")

return rows, columns, matrix1

def matrixTranspose(rows, columns, matrix1):

print("\nThe transpose of this matrix is...")

for y in range(rows):

print("\n")

for x in range(columns):

print(format(matrix1[y][x], "5d"), end="")

matrixGenerator1()

matrixTranspose(rows, columns, matrix1)

Running this results in an error message saying that

`rows`

`columns`

`matrix1`

`matrixGenerator`

Is there anyway that someone could provide me a general explanation as to what I'm doing wrong so I can prevent this error in the future?

Recommended for you: Get network issues from **WhatsUp Gold**. **Not end users.**

Answer Source

You need to save the output of your first function in your main routine. (Notice you are already returning it so you are almost done):

```
rows, columns, matrix1 = matrixGenerator1()
matrixTranspose(rows, columns, matrix1)
```

Recommended from our users: **Dynamic Network Monitoring from WhatsUp Gold from IPSwitch**. ** Free Download**