Funções são blocos de código reutilizáveis que realizam uma tarefa específica. Elas ajudam a organizar o código, tornando-o mais legível e fácil de manter. Em [[Linguagem de programação Python|Python]], funções são definidas usando a palavra-chave `def`.
# Definindo Funções
A sintaxe básica para definir uma função é:
```python
def nome_da_funcao(parametros):
# Código da função
return valor_de_retorno
````
- `def`: Palavra-chave para definir uma função.
- `nome_da_funcao`: O nome da função (escolha nomes descritivos!).
- `parametros`: Valores que a função recebe como entrada (opcional).
- `return`: Retorna um valor da função (opcional). Veja [Retorno de Valores em Python](app://obsidian.md/Retorno%20de%20Valores%20em%20Python).
Exemplo:
```python
def quadrado(x):
"""Calcula o quadrado de um número."""
return x * x
# Usando a função
for i in range(3):
print(f"O quadrado de {i} é {quadrado(i)}")
```
# Tipos de Argumentos
Funções em Python podem receber diferentes tipos de argumentos:
## Argumentos Posicionais
São passados na ordem em que são definidos na função:
```python
def descrever_pessoa(nome, idade):
"""Descreve uma pessoa com nome e idade."""
print(f"Nome: {nome}, Idade: {idade}")
descrever_pessoa("Alice", 30) # "Alice" é associado a 'nome', 30 a 'idade'
```
## Argumentos Nomeados (Keyword Arguments)
São passados especificando o nome do parâmetro:
```python
descrever_pessoa(idade=25, nome="Bob") # A ordem não importa
```
## Argumentos Arbitrários (*args)
Permitem passar um número variável de argumentos posicionais. Dentro da função, `args` é uma tupla contendo os argumentos:
```python
def somar(*args):
"""Soma um número arbitrário de valores."""
total = 0
for numero in args:
total += numero
return total
print(somar(1, 2, 3)) # Saída: 6
print(somar(4, 5, 6, 7)) # Saída: 22
```
## Argumentos de Palavra-Chave Arbitrários (**kwargs)
Permitem passar um número variável de argumentos nomeados. Dentro da função, `kwargs` é um dicionário:
```python
def criar_perfil(**kwargs):
"""Cria um perfil de usuário com informações variáveis."""
for chave, valor in kwargs.items():
print(f"{chave}: {valor}")
criar_perfil(nome="Carlos", idade=40, cidade="São Paulo")
```
# Funções Lambda
Para funções simples de uma linha, você pode usar [[Funções Lambda em Python]]
**::Referência::** [Python Functions (w3schools.com)](https://www.w3schools.com/python/python_functions.asp)