What is the difference between matrix_basis and matrix_world? I know it is a bad question sorry but I haven't found any information about these matrices expect in the blender documentations.

The docs say that matrix_basis is: 


  Matrix access to location, rotation and scale (including deltas),
  before constraints and parenting are applied.


So if not related to any parent, is it the same as matrix_world ?
matrix_basis is the 'input' matrix, so it's the thing that you set as the 3D artist, so it's relative to the object's parent. matrix_world is the 'evaluated' matrix, so it basically is matrix_basis with all the constraints applied and is multiplied by all the parent matrices (so it's in world coordinates).