code: def exponential_moving_average(data, period):
      
      catch_errors.check_for_period_error(data, period)
      emas = [exponential_moving_average_helper(
              data[idx - period + 1:idx + 1], period) for idx in range(period - 1, len(data))]
      emas = fill_for_noncomputable_vals(data, emas)
      return emas
docs: Exponential Moving Average.
  
      Formula:
      p0 + (1 - w) * p1 + (1 - w)^2 * p2 + (1 + w)^3 * p3 +...
                  /   1 + (1 - w) + (1 - w)^2 + (1 - w)^3 +...
  
      where: w = 2 / (N + 1)