code: def xfrange(stop, start=None, step=1.0):
      """Same as :func:`frange`, but generator-based instead of returning a
      list.
      >>> tuple(xfrange(1, 3, step=0.75))
      (1.0, 1.75, 2.5)
  
      See :func:`frange` for more details.
      """
      if not step:
          raise ValueError("step must be non-zero")
      if start is None:
          start, stop = 0.0, stop * 1.0
      else:
          # swap when all args are used
          stop, start = start * 1.0, stop * 1.0
      cur = start
      while cur < stop:
          yield cur
          cur += step
  
imports: import os
  import math
  import time
  import codecs
  import random
  import socket
  import hashlib
  import itertools
  from collections import Mapping, Sequence, Set, ItemsView
label_desc: Use image node_id 12 for calling a global function with example usage: xfrange(stop, start, step) without return types