Comentários?
Dúvidas?
Outras soluções?
#----------------------------------------------------------- def soma_pos_neg(seq): '''(list) -> int, int Recebe uma lista seq de números e retorna dois números: a soma dos números positivos e a soma dos números negativos na lista. ''' n = len(seq) # caso base: resolva o problema diretamente if n = 0: return 0, 0 # reduza a instância do problema e aplique a recursão soma_pos, soma_neg = soma_pos_neg(seq[0:n-1]) # resolva a instância corrente if seq[n-1] > 0: soma_pos += seq[n-1] else: soma_neg += seq[n-1] # retorne a solução return soma_pos, soma_neg #----------------------------------------------------------- def soma_pos_neg(seq): '''(list) -> int, int Recebe uma lista seq de números e retorna dois números: a soma dos números positivos e a soma dos números negativos na lista. ''' n = len(seq) # caso base: resolva o problema diretamente if n = 0: return 0, 0 # reduza a instância do problema e aplique a recursão soma_pos, soma_neg = soma_pos_neg(seq[:n-1]) # resolva a instância corrente if seq[n-1] > 0: soma_pos += seq[n-1] else: soma_neg += seq[n-1] # retorne a solução return soma_pos, soma_neg #----------------------------------------------------------- def soma_pos_neg(seq): '''(list) -> int, int Recebe uma lista seq de números e retorna dois números: a soma dos números positivos e a soma dos números negativos na lista. ''' if seq == []: return 0, 0 soma_pos, soma_neg = soma_pos_neg(seq[:-1]) if seq[-1] > 0: soma_pos += seq[-1] else: soma_neg += seq[-1] return soma_pos, soma_neg #----------------------------------------------------------- def soma_pos_neg(seq): '''(list) -> int, int Recebe uma lista seq de números e retorna dois números: a soma dos números positivos e a soma dos números negativos na lista. ''' if seq == []: return 0, 0 soma_pos, soma_neg = soma_pos_neg(seq[:-1]) if seq[-1] > 0: soma_pos += seq[-1] else: soma_neg += seq[-1] return soma_pos, soma_neg