【Copie e Cole para Rodar】Curso Mestre de Criação de Funções em Python: Do Básico de 'def' ao Avançado
Para executar Python no prompt de comando ou PowerShell no seu PC, é necessário baixar e instalar o Python.
Se ainda não o fez, consulte o artigo Instalação do Python e configuração do ambiente de desenvolvimento para instalar o Python.
Ao criar sites ou desenvolver aplicativos, você já se pegou pensando "Ué, eu acabei de escrever esse mesmo processo..."? Isso acontece com frequência. A solução para essa "repetição de processos" é o que apresentamos hoje: as "funções" do Python.
Neste artigo, vamos explicar desde a forma básica de criar funções em Python até algumas técnicas avançadas úteis, tudo com muitos exemplos de código para que até mesmo iniciantes em programação possam acompanhar com confiança. A palavra-chave é "copie e cole para rodar". Deixe a teoria complicada de lado por enquanto e experimente primeiro a alegria de ver seu próprio código funcionar!
Afinal, o que é uma "função" em Python?
A maneira mais fácil de imaginar uma função talvez seja uma "máquina de venda automática".
- Você insere dinheiro (argumentos), pressiona um botão (chama a função) e...
- Uma bebida sai (valor de retorno).
Dessa forma, uma função é um "conjunto de tarefas (processos) específicas". Uma vez criada, você pode chamá-la repetidamente para realizar o mesmo trabalho, assim como pressionar um botão. Isso traz a grande vantagem de tornar seu código mais curto, simples e fácil de modificar.
Em Python, você cria essas funções usando a instrução def (a instrução def). Vamos ver em detalhes como criá-las!
【O Básico】Como Criar e Usar Funções em Python
Vamos começar pelo básico. Criaremos a função mais simples possível, sem argumentos nem valor de retorno.
1. Sintaxe Básica: Definindo uma Função com `def`
Para criar uma função, você começa escrevendo def nome_da_funcao(): e, na linha seguinte, indenta (adiciona um recuo) para escrever o conteúdo do processo. Aqui, vamos criar uma função simples chamada dizer_ola que apenas exibe "Olá!".
# 1. Definir a função
def dizer_ola():
print("Olá!")
# 2. Chamar a função
dizer_ola()
Resultado da execução:
Olá!
O ponto principal é que nada acontece apenas definindo (criando) a função. Somente quando você escreve o nome da função seguido por parênteses, como dizer_ola(), a função é chamada e o código dentro dela é executado.
2. Vamos Usar Argumentos
Em seguida, vamos tentar usar "argumentos", que seriam o "dinheiro" em nossa analogia da máquina de venda automática. Usando argumentos, você pode passar informações para a função de fora e alterar o que ela faz.
Aqui, criaremos uma função chamada saudar que retorna uma saudação para um nome fornecido. Quando você coloca um nome de variável (neste caso, nome) dentro dos parênteses, como def saudar(nome):, ele se torna um argumento.
# Definir uma função que aceita um argumento
def saudar(nome):
print(f"Olá, {nome}!")
# Passar valores específicos como argumentos ao chamar a função
saudar("Silva")
saudar("Santos")
Resultado da execução:
Olá, Silva!
Olá, Santos!
Como você pode ver, apenas alterando o valor passado como argumento, conseguimos alterar de forma flexível o resultado da mesma função.
3. Obtendo Resultados com um Valor de Retorno
Agora é a vez da "bebida" da máquina de venda automática: o "valor de retorno". Você o usa quando quer enviar um resultado calculado dentro da função de volta para onde a função foi chamada. Para retornar um valor, você usa a instrução return.
Vamos criar uma função somar que recebe dois números e retorna a soma deles.
# Uma função que recebe dois argumentos e retorna sua soma
def somar(a, b):
total = a + b
return total # Use a instrução return para enviar o resultado de volta
# Chame a função e armazene o valor de retorno na variável 'resultado'
resultado = somar(5, 3)
print(f"O resultado de 5 + 3 é {resultado}.")
Resultado da execução:
O resultado de 5 + 3 é 8.
Quando somar(5, 3) é executado, total = 8 é calculado dentro da função, e o valor 8 é retornado pela instrução return para o local onde a função foi chamada. Em seguida, o 8 retornado é atribuído à variável resultado.
Ao usar return em vez de apenas imprimir diretamente com print(), você pode usar o resultado do cálculo em outro processo, o que é extremamente útil.
【Avançado】Maneiras Mais Convenientes de Usar Funções
Agora que você já domina o básico, vamos ver algumas maneiras mais avançadas de usar funções. Dominá-las permitirá que você escreva um código mais flexível и eficiente.
1. Argumentos Padrão: Sem Argumento? Sem Problemas!
Às vezes, você quer poder omitir um argumento ao chamar uma função. É aí que os "argumentos padrão" são úteis. Você define um valor padrão com antecedência, assim: def nome_da_funcao(nome_do_argumento="valor_padrao"):.
# Definir um valor padrão "pt" para o segundo argumento, lang
def saudar_idioma(name, lang="pt"):
if lang == "ja":
message = f"{name}さん、こんにちは!" # Olá, {name}! em japonês
elif lang == "en":
message = f"Hello, {name}!"
elif lang == "pt":
message = f"Olá, {name}!"
else:
message = "Idioma não especificado."
return message
# Omitir o segundo argumento (o valor padrão "pt" será usado)
print(saudar_idioma("Silva"))
# Especificar o segundo argumento
print(saudar_idioma("John", lang="en"))
Resultado da execução:
Olá, Silva!
Hello, John!
Se você omitir o argumento como em `saudar_idioma("Silva")`, ele será tratado automaticamente como `lang="pt"`, então uma saudação em português será exibida. Muito conveniente!
2. Argumentos de Palavra-Chave: Não se Preocupe com a Ordem
Quando uma função tem muitos argumentos, pode ser difícil lembrar a ordem deles. Se você usar "argumentos de palavra-chave", poderá especificá-los no formato `nome_do_argumento=valor`, para não precisar se preocupar com a ordem.
def criar_perfil_usuario(name, age, country):
return f"Nome: {name}, Idade: {age}, País: {country}"
# Especificar argumentos na ordem
perfil1 = criar_perfil_usuario("Silva", 30, "Brasil")
print(perfil1)
# Usar argumentos de palavra-chave para especificar em uma ordem diferente
perfil2 = criar_perfil_usuario(country="Portugal", name="Emily", age=25)
print(perfil2)
Resultado da execução:
Nome: Silva, Idade: 30, País: Brasil
Nome: Emily, Idade: 25, País: Portugal
Usar argumentos de palavra-chave também tem o benefício de tornar seu código mais legível, pois fica imediatamente claro qual valor está sendo passado para qual argumento.
【Experimente Você Mesmo】Execute uma Função Python no seu Navegador
Finalmente, vamos tentar executar Python usando apenas um arquivo HTML, algo com que os criadores da web já estão familiarizados! Copie todo o bloco de código abaixo, salve-o com um nome como `index.html` e abra-o no seu navegador. Você terá uma aplicação web simples que retorna uma saudação com base no texto que você inserir.
Isso usa uma tecnologia chamada PyScript para executar código Python diretamente dentro de um arquivo HTML. Nenhuma configuração complicada é necessária. Por favor, experimente o "copie e cole para rodar" você mesmo!
<!DOCTYPE html>
<html lang="pt">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Experimente Funções Python no Navegador!</title>
<!-- Carregando o PyScript -->
<link rel="stylesheet" href="https://pyscript.net/releases/2024.1.1/core.css">
<script type="module" src="https://pyscript.net/releases/2024.1.1/core.js"></script>
<style>
body { font-family: sans-serif; padding: 2em; line-height: 1.6; }
input { padding: 8px; font-size: 1em; }
button { padding: 8px 16px; font-size: 1em; cursor: pointer; }
#output { margin-top: 1em; font-weight: bold; font-size: 1.2em; color: #2c3e50; }
</style>
</head>
<body>
<h1>Gerador de Saudações</h1>
<p>Digite seu nome e pressione o botão.</p>
<input id="user-name" type="text" placeholder="Digite o nome...">
<button py-click="generate_greeting">Gerar Saudação</button>
<div id="output"></div>
<py-script>
from pyscript import document
# ★Defina a função Python aqui★
def create_greeting_message(name):
# Se o nome estiver vazio, retorne uma saudação padrão
if not name:
return "Por favor, insira seu nome!"
# Se houver um nome, retorne uma saudação usando esse nome
return f"Bem-vindo(a) ao mundo da web, {name}!"
# Função a ser executada quando o botão for clicado
def generate_greeting(event):
# Obter a entrada do usuário do elemento de entrada
input_element = document.querySelector("#user-name")
user_name = input_element.value
# Crie uma mensagem de saudação usando a função definida acima
message = create_greeting_message(user_name)
# Escreva a mensagem no elemento div para exibição
output_div = document.querySelector("#output")
output_div.innerText = message
</py-script>
</body>
</html>
Pontos a Ter Cuidado ao Usar Funções
As funções são muito poderosas, mas há alguns pontos a ter em atenção para usá-las corretamente.
-
A indentação é vital!
Em Python, a indentação significa um bloco de código. O processamento apósdefdeve sempre ser indentado com o mesmo número de espaços (geralmente quatro). Se a indentação estiver errada, causará um erro. -
Use nomes de função claros
O nome de uma função deve deixar imediatamente claro o que a função faz. Por exemplo, nomes que incluem um verbo, comosomaroucriar_perfil_usuario, são comuns. Maus exemplos são nomes comofuncao1ouprocque не revelam seu propósito. -
Esteja ciente do escopo da variável
Uma variável definida dentro de uma função (uma variável local) não pode ser usada fora dessa função. Este é um mecanismo importante para evitar que as funções afetem o mundo exterior sem intenção.
Vamos ver um exemplo de escopo de variável.
def minha_funcao():
# variavel_local é uma variável local válida apenas dentro de minha_funcao
variavel_local = "Esta é uma variável dentro da função"
print(variavel_local)
# Executar a função
minha_funcao()
# Tentar acessar variavel_local de fora da função causa um erro
# print(variavel_local) # NameError: name 'variavel_local' is not defined
Resultado da execução:
Esta é uma variável dentro da função
Se você descomentar a última linha, print(variavel_local), e executá-la, ocorrerá um NameError. Isso ocorre porque variavel_local не existe fora da função. Essa propriedade de ter um "escopo de influência limitado" é o que torna o código seguro e fácil de gerenciar.
Conclusão: Domine as Funções e Leve sua Programação para o Próximo Nível!
Neste artigo, aprendemos tudo, desde o básico até as aplicações das funções Python, juntamente com muito código que você pode copiar e colar para rodar.
- As funções são definidas usando
def - Você pode passar informações para uma função usando argumentos
- Você pode obter um resultado de uma função usando
return - Você pode usar funções de forma mais conveniente com argumentos padrão e argumentos de palavra-chave
As funções são um dos conceitos mais básicos e mais importantes da programação. Elas eliminam a necessidade de escrever o mesmo processo repetidamente e melhoram drasticamente a legibilidade geral do seu código.
Primeiro, tente brincar com o código de exemplo deste artigo e criar suas próprias funções. Experimentar que "funciona" é o caminho mais rápido para melhorar.
Depois de dominar as funções, por que não aprender a lidar com dados coletivamente? O artigo a seguir fornece uma explicação detalhada de "listas" e "dicionários", as estruturas de dados mais comumente usadas em Python.
Próximo Passo: Aprenda sobre Estruturas de Dados do Python como Listas e Dicionários