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)