<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def update_athlete(self, city=None, state=None, country=None, sex=None, weight=None):
 """ Updates the properties of the authorized athlete. http://strava.github.io/api/v3/athlete/#update :param city: City the athlete lives in :param state: State the athlete lives in :param country: Country the athlete lives in :param sex: Sex of the athlete :param weight: Weight of the athlete in kg (float) :return: The updated athlete :rtype: :class:`stravalib.model.Athlete` """

        params = {'city': city,
                  'state': state,
                  'country': country,
                  'sex': sex}
        params = {k: v for (k, v) in params.items() if v is not None}
        if weight is not None:
            params['weight'] = float(weight)

        raw_athlete = self.protocol.put('/athlete', **params)
        return model.Athlete.deserialize(raw_athlete, bind_client=self)