Printing not working in certain python functions
Question: Here is the code in trouble, should be self-explanatory with the comments:

    
    
    import numpy as np
    import sys
    
    A = np.matrix([[1, 1], [2, 0]])
    x0 = np.matrix([1, 0]).reshape(2, 1)
    thresh = 1e-3
    
    def inv_powerm(A, x0, thresh):
        m0 = x0.flat[abs(x0).argmax()]
        x1 = np.linalg.solve(A, (x0 / m0))
        m1 = x1.flat[abs(x1).argmax()]
        while abs(m1 - m0) > thresh:
            m0 = m1
            x1 = np.linalg.solve(A, (x1 / m1))
            m1 = x1.flat[abs(x1).argmax()]
            print(x1)
            print(m1)
        return m1;
    
    def pmat(m):
        i = 0
        while i < 10:
            print(m)
            i = i + 1
        return m
    
    # I can print the matrix
    print(A)
    # I can print the matrix in pmat()
    pmat(A)
    # But I cannot print matrices in inv_powerm()
    inv_powerm(A, x0, thresh)
    


Answer: It is not the `print` not work. It is the logic of your code that fails. In
`inv_powerm`, the first time `m0 == 1` and `m1 == 1.0`, so `m0 - m1 == 0`. So
the `while` test fails. All the code in `while` not executed.

