code: def drange(start, stop, step):
      
      x = start
      if step > 0:
          while x + step <= stop: # produces same behaviour as numpy.arange
              yield x
              x += step
      elif step < 0:
          while x + step >= stop: # produces same behaviour as numpy.arange
              yield x
              x += step
      else:
          raise ZeroDivisionError("Step must be non-zero")
docs: A generator that yields successive samples from start (inclusive)
      to stop (exclusive) in step intervals.
  
      Parameters
      ----------
      start : float
          starting point
      stop : float
          stopping point 
      step : float
          stepping interval
  
      Yields
      ------
      x : float
          next sample