def splitparticle(s):
    """Extracts number, particle/element type and mass number of particle string
    (e.g. 1Cs133, Cs133, 1e).

    Parameters
    ----------
    s : str
        Input particle string.

    Returns
    -------
    tuple of (int, str, int)
        Tuple of signature (number of particles, element symbol, atomic mass number)

    Examples
    --------
    >>> splitspecies('1Cs133') # returns (1,'Cs',133)
    >>> splitspecies('-e')     # returns (-1,'e',0)


    """
    tail = s.lstrip('+-0123456789')
    head = s[:-len(tail)]
    if head == '+' or head == '': # handle omitted 1 or plus sign
        n = int(1)
    elif head == '-': # handle omitted 1
        n = int(-1)
    else:
        n = int(head) # leading number including sign (if present)
    El = tail.rstrip('0123456789') # get central letters
    if El == 'e' and len(El) == len(tail): # handle electron strings, e.g. ':-1e'
        A = 0
    else: # handle hadrons
        A = int(tail[len(El):]) # trailing number
    return n, El, A