title: How to represent fractions in python
body: <p>I am trying to implement a method that takes a matrix from the matrix class i've defined and returns a triagonal matrix using gaussian elimination.
  Consider the following matrix:</p>
  
  <pre><code>m1 = [[2, -3, -4],
        [-1, 4, 5],
        [1, -3, -4]]
  </code></pre>
  
  <p>Basically i need to add to each row, a multiple of another previous row, until i end up with a matrix which has 0 in all places below the main diagonal. Following this process, i should have the following matrix:</p>
  
  <pre><code>m2 = [[2, -3, -4],
        [0, 5/2, 3],
        [0, 0, -1/5]]
  </code></pre>
  
  <p>The problem is that fractions like 1/3 will often come up and i wouldn't want to lose precision by using floats. So is there any way to represent fractions? Will i have to define special behaviour for those? 
  For the sake of doing it by myself i don't want to use any external modules.</p>