PythonTrilha · etapa 91h30
Primeiras funções: `def`, parâmetros, retorno e docstrings
Vídeos desta etapa, na ordem do portal:
- Funções · 14 min
- Parâmetros e argumentos · 14 min
- Argumentos nomeados · 16 min
- Parâmetros com valor padrão · 15 min
- Retorno de valores · 12 min
- Docstrings · 19 min
A etapa anterior trabalhou listas e repetições com for e range(). Agora você aprende a organizar uma tarefa em uma função própria com def, passar valores por argumentos, devolver resultados com return e documentar a função com uma docstring.
O que foi falado
Função com
Vídeo 1 · 00:03:58defe chamada com()Função é um trecho com nome que faz uma tarefa e pode ser reutilizado sem copiar código. Você cria com
def, nome, parênteses e dois-pontos, e escreve o corpo indentado, como emifefor. Definir não executa o corpo: é preciso chamar depois, comocumprimenta_usuario(). Você já conhece chamadas comoprint(),input()erange();defpermite criar suas próprias funções.def cumprimenta_usuario(): print("Olá") cumprimenta_usuario()Saída
Olá
Parâmetro no
Vídeo 2 · 00:01:46defe argumento na chamadaParâmetro é o nome entre parênteses no
def, comonome_usuario, que a função usa por dentro. Argumento é o valor entre parênteses na chamada, como"Marcelo", que entra naquele parâmetro. Cada chamada pode passar um valor diferente e a função roda com aquele valor. Sem passar o argumento esperado, a chamada quebra.def cumprimenta_usuario(nome_usuario): print(f"Olá, {nome_usuario}") cumprimenta_usuario("Marcelo") cumprimenta_usuario("Ana")Saída
Olá, Marcelo Olá, Ana
Argumentos posicionais e nomeados com
Vídeo 3 · 00:06:57nome=valorNa chamada posicional, cada valor se liga ao parâmetro da mesma posição, então a ordem precisa ser a da definição. Na chamada nomeada você escreve
nome=valor, comotitulo="Sr", e a ligação é pelo nome, então a ordem pode mudar. Dá para misturar, mas todo posicional vem primeiro, comomostra("Ana", titulo="Sra"). Colocar posicional depois de nomeado, comomostra(titulo="Sra", "Ana"), dá erro na IDE e na execução.def apresenta(nome, titulo): print(f"{titulo} {nome}") apresenta(titulo="Sra", nome="Ana")Saída
Sra Ana
Valor padrão com
Vídeo 4 · 00:02:10=e parâmetro opcionalVocê define o padrão no
defcomnome=valor, comobebida="água", e se a chamada omitir, ele usa esse valor. Parâmetro sem padrão fica no início e com padrão no fim, o contrário dá erro de sintaxe. Para pular um padrão do meio e dar valor só ao último, use nomeado, comoescolhe("pizza", sobremesa="sorvete"). Para opcional como nome do meio, use padrão vazio""e teste comifpara montar com duas ou três partes.def mostra_menu(prato, bebida="água"): print(prato) print(bebida) mostra_menu("feijoada") mostra_menu("feijoada", "suco")Saída
feijoada água feijoada suco
Vídeo 5 · 00:02:18returndevolve resultado para usar depoisImprimir dentro mostra na tela mas não entrega valor para o resto do programa. Com
return, comoreturn nome_completo, a função encerra e devolve o valor para o ponto da chamada. Você pode usar direto, comoprint(nome_completo("Ana", "Souza")), ou guardar em variável, comonome = nome_completo("Ana", "Souza"). No debugger dá para ver o desvio voltando para a linha da chamada e fazendo a atribuição.def nome_completo(primeiro, ultimo): return f"{primeiro} {ultimo}" nome = nome_completo("Ana", "Souza") print(nome)Saída
Ana Souza
Docstring com
Vídeo 6 · 00:04:13"""e ajuda comhelp()Docstring é a primeira string da função, por convenção entre
""", que explica o que faz, parâmetros e retorno. Ela não muda a execução, mas aparece emhelp()e no popup da IDE ao passar o mouse. Escreverstrpara tipo esperado, como nos parâmetros, ajuda quem vai chamar. É o jeito padrão de documentar para outro programador entender sem ler o corpo.def nome_completo(primeiro, ultimo): """Junta primeiro e ultimo e devolve o nome.""" return f"{primeiro} {ultimo}" help(nome_completo)Saída
Help on function nome_completo in module __main__: nome_completo(primeiro, ultimo) Junta primeiro e ultimo e devolve o nome.
Conceitos da aula
- print()
- input()
- range
- função
- def
- chamar função
- parâmetro
- argumento
- argumento nomeado
- valor padrão
- return
- docstring
Reforce este assunto
- Funções: declaração, parâmetros e returnPython · aula 17
- Funções e batalha final do RPGPython · aula 12
- AT de Python: regras e leitura das 16 questõesPython · aula 18