Qual a diferença entre rotina e função em Python? Dê um exemplo para cada tipo.
Passo 1
O que o enunciado pede:
- Explicar a diferença entre “rotina” e “função” em Python.
- Mostrar um exemplo para cada tipo (um exemplo de rotina e um exemplo de função).
Informações dadas:
- Nenhuma informação extra foi fornecida além do pedido acima.
Passo 2
O que é uma “rotina” (explicação didática):
- Em programação, muita gente usa “rotina” como sinônimo de “procedimento”: é um bloco de código que executa tarefas e normalmente é chamado apenas pelos seus efeitos (por exemplo, imprimir algo na tela, modificar uma lista, gravar num arquivo).
- Em Python não existe uma palavra-chave separada “procedure” — tudo se define com
def. Ou seja, tecnicamente tanto “rotinas” quanto “funções” são definidas comdef. A diferença prática é o que elas fazem: rotinas são usadas por seus efeitos colaterais (side‑effects) e não por um valor que elas retornam. - Exemplo de efeito colateral:
print()mostra texto na tela, muda nada no programa exceto o que o usuário vê — esse é um efeito colateral.
Por que isso importa na prova:
- Saber distinguir pelo comportamento (retorna algo para usar depois? ou só faz coisa e fim?) é o que geralmente pedem em questões conceituais.
Passo 3
Como se escreve uma rotina em Python — passo a passo:
- Sintaxe básica:
definicia a definição.- Em seguida vem o nome da rotina e parênteses com parâmetros (se houver).
- Dois pontos
:e depois o corpo indentado (4 espaços normalmente).
- Se a rotina não usar
returnexplicitamente, o Python retornaNonepor padrão — ou seja, não retorna um valor significativo. - Exemplo de rotina (vou explicar linha a linha a seguir):
- Código:
def imprime_soma_e_lista(a, b, lista):
s = a + b
print(“Soma:”, s) # efeito: imprime na tela
for i, v in enumerate(lista):
lista[i] = v * 2 # efeito: modifica a lista passada
- Código:
- Explicando o exemplo linha a linha:
def imprime_soma_e_lista(a, b, lista):— define a rotina com três parâmetrosa,b,lista.s = a + b— calcula a soma e guarda ems(variável local).print("Soma:", s)— imprime a soma na tela; esse é um efeito visível, mas nada é “devolvido” para quem chamou a rotina.for i, v in enumerate(lista): lista[i] = v * 2— percorre a lista e dobra cada elemento: modifica o objetolistapassado (mutabilidade), outro efeito colateral.
- Como usar essa rotina:
- Se eu fizer
L = [1,2,3]e depoisresultado = imprime_soma_e_lista(2,3,L), no console veráSoma: 5eLpassará a ser[2,4,6]. Eresultadoterá o valorNoneporque nada foi retornado.
- Se eu fizer
- Padrão a observar na prova: se a questão espera que você “faça algo” (print, alterar objeto, salvar), provavelmente querem uma rotina/efeito e não um valor a ser usado depois.
Passo 4
O que é uma “função” (explicação didática):
- Uma função, no sentido usado na maioria dos exercícios e na matemática, é um bloco de código que recebe argumentos e retorna um valor que pode ser usado depois.
- Em Python, você também usa
defe então, dentro, usareturnpara devolver um valor para quem chamou. - O
returntermina a execução da função naquele ponto e “entrega” um valor ao chamador. - Funções são úteis quando você precisa de um valor para atribuir, calcular expressão, encadear operações, etc.
Passo 5
Como se escreve uma função em Python — passo a passo:
- Sintaxe:
def nome(param1, param2):- corpo indentado
return valor
- Exemplo simples (explicado linha a linha):
- Código:
def soma(a, b):
return a + b - Explicação:
def soma(a, b):— define a função chamadasomacom parâmetrosaeb.return a + b— calculaa + be devolve esse resultado para quem chamou.
- Uso:
x = soma(2, 3)faz com quexreceba o valor5.- Posso também usar direto em expressão:
print(soma(4,5) * 2)-> imprime18.
- Código:
- Observação importante para a prova:
- Não confunda
print()comreturn.print()mostra algo na tela,returnentrega algo para o programa. Um erro comum em provas é escreverprint(resultado)quando o enunciado pede “retorne o valor”.
- Não confunda
Passo 6
Comparação prática e pontos-chave que costumam cair em prova
- Sintaxe: ambos usam
defem Python — não há palavra-chave diferente. - Diferença principal:
- Rotina: usada pelos efeitos colaterais (imprimir, alterar variáveis/objetos, gravar arquivo). Normalmente não retorna valor útil (retorna
Nonepor padrão). - Função: projetada para calcular e devolver um valor com
return, usado em expressões ou guardado em variáveis.
- Rotina: usada pelos efeitos colaterais (imprimir, alterar variáveis/objetos, gravar arquivo). Normalmente não retorna valor útil (retorna
- Exemplos de como detectar:
- Se a questão pede “imprima” ou “modifique”, pense em rotina.
- Se pede “calcule e retorne” ou “qual é o valor”, pense em função com
return.
- Dica de correção rápida em prova:
- Se a sua rotina precisa ser testada por um número, prefira escrever função que retorna valor; assim o corretor pode checar a saída com exatidão.
- Se escrever
printquando a questão pede retorno, pode perder ponto.
Passo 7
Exemplos finais e rápidos (para memorizar e aplicar na prova)
- Exemplo claro de rotina (sem retorno explícito, só efeitos):
- Código:
def marcar_presenca(nome, lista_presenca):
print(nome, “presente”)
lista_presenca.append(nome) - O que faz: imprime e modifica
lista_presenca. Quem chama recebeNone.
- Código:
- Exemplo claro de função (retorna algo para usar):
- Código:
def media(a, b, c):
return (a + b + c) / 3 - O que faz: devolve a média; posso fazer
m = media(7,8,9)e usarmdepois.
- Código:
- Erro comum: escrever uma função que imprime o resultado em vez de retornar. Em testes automáticos, isso falha — prefira sempre
returnquando a questão pedir valor.
Resposta
Diferença: Rotina = bloco de código usado por seus efeitos colaterais (imprimir, modificar objetos) e normalmente não retorna valor útil (retorna
em Python). Função = bloco de código que calcula e devolve um valor com
, para ser usado em expressões ou atribuições.
Exemplo de rotina:
def imprime_soma_e_lista(a, b, lista):
s = a + b
print(“Soma:”, s)
for i, v in enumerate(lista):
lista[i] = v * 2
Exemplo de função:
def soma(a, b):
return a + b
Exemplo de rotina:
def imprime_soma_e_lista(a, b, lista):
s = a + b
print(“Soma:”, s)
for i, v in enumerate(lista):
lista[i] = v * 2
Exemplo de função:
def soma(a, b):
return a + b