def sanitize_single_param(p):
    """Sanitize a single parameter

    Parameters
    ----------
    p : str
        The parameter to sanitize

    Returns
    -------
    sanitized : str or int or float

    Examples
    --------

    >>> sanitize_single_param('t')
    True

    >>> sanitize_single_param('"This is a string"')
    'This is a string'

    >>> sanitize_single_param('293.0')
    293.0

    """
    if p.lower() == 't':
        return True
    if p.lower() == 'f':
        return False
    for quotechar in ['"', "'"]:
        if p.count(quotechar) == 2 and p.startswith(quotechar) and p.endswith(
            quotechar):
            return p[1:-1]
    if p.count('.') == 0:
        try:
            return int(p)
        except ValueError:
            pass
    try:
        return float(p)
    except ValueError:
        pass
    return p
