def rolling_average(values, window):
    if not isinstance(window, (int, float)) or isinstance(window, bool):
        raise TypeError("window must be an int or float")
    if window <= 0:
        raise ValueError("window must be > 0")
    for v in values:
        if not isinstance(v, (int, float)) or isinstance(v, bool):
            raise TypeError("values must be ints or floats")
    if window > len(values):
        return []
    return [sum(values[i:i + window]) / window
            for i in range(len(values) - window + 1)]
