code: def split_number_and_unit(s):
      
      if not s:
          raise ValueError('empty value')
      s = s.strip()
      pos = len(s)
      while pos and not s[pos-1].isdigit():
          pos -= 1
      number = int(s[:pos])
      unit = s[pos:].strip()
      return (number, unit)
docs: Parse a string that consists of a integer number and an optional unit.
      @param s a non-empty string that starts with an int and is followed by some letters
      @return a triple of the number (as int) and the unit