<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def pass_times(self, latitude, longitude, altitude=None, number=None):
 """The next pass times of the ISS. :param latitude: latitude in degrees of location you want iss pass above :type latitude: float :param longitude: longitude in degrees of location you want iss pass above :type longitude: float :param altitude: altitude in meters of location you want iss pass above, default is 100 when not given :type altitude: float :param number: number of next pass above the location, default is 5 if not given. Min is 1, max is 100 :type number: int :return: a list of the next pass of the ISS with the risetime and the duration :rtype: list """

        # Check input
        schema = Schema({
            Required('lat'): All(Any(int, float), Range(min=-80, max=80)),
            Required('long'): All(Any(int, float), Range(min=-180, max=180)),
            'alt': Any(None, All(Any(int, float), Range(min=0, max=10000))),
            'number': Any(None, All(int, Range(min=1, max=100)))
        })
        schema({
            'lat' : latitude, 'long': longitude, 'alt' : altitude,
            'number': number})

        # Build request
        payload = {'lat': latitude, 'lon': longitude}

        if altitude is not None:
            payload['alt'] = altitude

        if number is not None:
            payload['n'] = number

        data = requests.get('{}{}'.format(self.API_URL, self.API_PASS_TIMES),
                            params=payload, timeout=5)

        # Check error
        if data.status_code is 200:
            return data.json()['response']
        else:
            raise Exception("Error server n {}".format(data.status_code))