Neste exemplo, a função f() retorna 3 valores (107, 'hello' e [8, 9, 10]). Podemos atribuir cada valor retornado a uma variável com a, b, c = f().
A parte mais interessante é que não há magia em retornar vários valores. O que a função f() realmente faz é retornar um único valor — uma tupla que possui 3 elementos (107, 'hello' e [8, 9, 10]). Ao imprimir todo o valor retornado com print(f()), podemos ver que o valor é na verdade uma tupla (note os parênteses). Quando uma função retorna uma tupla, simplesmente desempacotamos os valores em a, b e c.
Assim, na realidade, as funções sempre retornam um único valor — mas podemos interpretar o retorno de uma tupla como o retorno de múltiplos valores.
Desafio
Escreva uma função que retorne a parte inteira e o resto após dividir a por b.
A entrada contém dois inteiros — a e b.
O programa deve imprimir 3 linhas (chame a função 3 vezes). Cada linha deve conter a parte inteira e o resto após a divisão de dois números:
A primeira linha deve conter o resultado para a e b.
A segunda linha deve conter o resultado para a + 1 e b + 1.
A terceira linha deve conter o resultado para a - 1 e b - 1.