code: def spoken_number(num: str) -> str:
      
      ret = []
      for part in num.split(' '):
          if part in FRACTIONS:
              ret.append(FRACTIONS[part])
          else:
              ret.append(' '.join([NUMBER_REPL[char] for char in part if char in NUMBER_REPL]))
      return ' and '.join(ret)
docs: Returns the spoken version of a number
  
      Ex: 1.2 -> one point two
          1 1/2 -> one and one half