nodes: 0, module; 1, function_definition; 2, function_name:zcount; 3, parameters; 4, block; 5, identifier:self; 6, identifier:key; 7, default_parameter; 8, default_parameter; 9, keyword_separator; 10, default_parameter; 11, expression_statement; 12, if_statement; 13, if_statement; 14, if_statement; 15, return_statement; 16, identifier:min; 17, call; 18, identifier:max; 19, call; 20, identifier:exclude; 21, None; 22, comment:"""Count the members in a sorted set with scores
          within the given values.
  
          :raises TypeError: min or max is not float or int
          :raises ValueError: if min greater than max
          """; 23, not_operator; 24, block; 25, not_operator; 26, block; 27, comparison_operator:min > max; 28, block; 29, call; 30, identifier:float; 31, argument_list; 32, identifier:float; 33, argument_list; 34, call; 35, raise_statement; 36, call; 37, raise_statement; 38, identifier:min; 39, identifier:max; 40, raise_statement; 41, attribute; 42, argument_list; 43, string; 44, string; 45, identifier:isinstance; 46, argument_list; 47, call; 48, identifier:isinstance; 49, argument_list; 50, call; 51, call; 52, identifier:self; 53, identifier:execute; 54, string; 55, identifier:key; 56, list_splat; 57, string_content:-inf; 58, string_content:inf; 59, identifier:min; 60, tuple; 61, identifier:TypeError; 62, argument_list; 63, identifier:max; 64, tuple; 65, identifier:TypeError; 66, argument_list; 67, identifier:ValueError; 68, argument_list; 69, string_content:ZCOUNT; 70, call; 71, identifier:int; 72, identifier:float; 73, string:"min argument must be int or float"; 74, identifier:int; 75, identifier:float; 76, string:"max argument must be int or float"; 77, string:"min could not be greater than max"; 78, identifier:_encode_min_max; 79, argument_list; 80, identifier:exclude; 81, identifier:min; 82, identifier:max
code: def zcount(self, key, min=float('-inf'), max=float('inf'),
                 *, exclude=None):
          """Count the members in a sorted set with scores
          within the given values.
  
          :raises TypeError: min or max is not float or int
          :raises ValueError: if min greater than max
          """
          if not isinstance(min, (int, float)):
              raise TypeError("min argument must be int or float")
          if not isinstance(max, (int, float)):
              raise TypeError("max argument must be int or float")
          if min > max:
              raise ValueError("min could not be greater than max")
          return self.execute(b'ZCOUNT', key,
                              *_encode_min_max(exclude, min, max))