def check_inputs(input1, input2):
    """
    Checks the inputs given to ensure that input1 is
    a list of just numbers, input2 is a number, and input2
    is within input1. Raises an exception if any of the
    conditions are not true.

    >>> check_inputs([1, 2.0, 3.0, 4], 4)
    'Input validated'

    >>> check_inputs([], 1)
    Traceback (most recent call last):
    ...
    TypeError: input2 not in input1

    >>> check_inputs(1, 1)
    Traceback (most recent call last):
    ...
    TypeError: input1 is not the correct type

    >>> check_inputs([1, 2, 'hi'], 4)
    Traceback (most recent call last):
    ...
    TypeError: The element at index 2 is not numeric

    >>> check_inputs([1.0, 2.0, 3.0], 'hello')
    Traceback (most recent call last):
    ...
    TypeError: input2 is not the correct type

    # MY DOCTESTS
    """
    
    if not isinstance(input1, list):
        raise TypeError('input1 is not the correct type')

    numeric = [isinstance(i, int) or isinstance(i, float) for i in input1]
    if not all(numeric):
        raise TypeError('The element at index ' + str(numeric.index(False)) + ' is not numeric')

    if not type(input2) in [float, int]:
        raise TypeError('input2 is not the correct type')
    if input2 not in input1:
        raise TypeError('input2 not in input1')
    return 'Input validated'