1. Funções

Funções são blocos de códigos que executam um processamento em específico e retornam valores. São uma ótima forma de evitar duplicação de código e promover a reutilização de processamento em múltiplos lugares dos seus algoritmos.

As funções vão tornar o seu código mais legível, fácil de programar, de testar e manter. Um exemplo de uma função que já aprendemos e utilizamos bastante ao longo desse tutorial é a print(). No Python nós vamos ter funçÕes chamadas de built-in, que significam função que são definidas pela própria linguagem e por isso são disponibilizadas por padrão em qualquer lugar que você execute um código em Python. Você também vai poder definir suas próprias funções, o que chamaremos de funções user-defined.

1.1. Definindo Funções

Para definir uma função é muito simples, todas as funções em Python iniciam com a nomeclatura def seguida por um nome para a função, parenteses e dois pontos (:).

def dizer_ola():
    """ Imprime no console uma saudação. """
    print("Hello World!")

dizer_ola()
# output = Hello World!

Para definir os nomes das suas funções lembre-se das seguintes regras:

  1. Evitar o uso de acentos
  2. A letras devem estar minúsculas e as palavras devem estar separadas por underscores.

Além disso, opcionalmente as funções podem ou não retornar valores. Para retornar valores em uma função é utilizado a cláusula return (expressão).

1.2. Funções com Argumentos

Para invocar uma função basta definir o seu nome juntamente com os parenteses e argumentos, se necessário. Algumas função definem argumentos como necessidade para fazer a sua execução, como é o caso do exemplo multiplicar(x, y) que esperar receber dois argumentos para realizar a multiplicação.


def multiplicar(x, y):
    """ Multiplica os valores x vezes y."""
    return x * y

resultado_multiplicacao = multiplicar(2, 3)
print(resultado_multiplicacao)
# output = 6

print(multiplicar(2, 3))
# output = 6

print(multiplicar(10, 2))
# output = 20

Algumas vezes as funções que recebem argumentos podem necessitar de valores padrões. Nesse caso é garantido que a função sempre terá um valor para o argumento da função. Por exemplo:

def dizer_ola(nome="World"):
    """ Imprime no console uma saudação. """
    return f"Hello {nome}!"

print(dizer_ola())
# output = Hello World!

print(dizer_ola("Maria"))
# output = Hello Maria!

print(dizer_ola(nome="Jose")))
# output = Hello Jose!

Alternativamente, também podemos usar as variáveis mágicas *args e **kwargs na definição de funções. Essas variáveis permitem que no momento da chamada da função nós possamos passar um número variável de argumentos. Ou seja, quando não temos uma definição exata de quais serão os argumentos que estamos passando para uma função, esses atributos nos permite flexibilizar a definição das funções.

Enquato o *args significa argumentos que não são nomeados, ou seja, não acompanhem palavras chaves, os **kwargs seguem uma estrutura de múltiplos argumentos que seguem o padrão chave=valor.

def soma(*args):
    total = 0
    for num in args:
        total += num 
    return total

print(soma(2,3,4,6)) # 15
print(soma(2,3,4,6,5,5,5,1,2)) # 32
print(soma(2,3)) # 5

def paises(**kwargs):
    print(kwargs)
    for pais, sigla in kwargs.items():
        print(f"A sigla do País {pais} é {sigla}.")

paises(Brasil="BR", Portugal="PT")
# output:
# {"Brasil": "BR", "Portugal": "PT"}
# A sigla do País Brasil é BR. 
# A sigla do País Portugal é PT.
Copyright © 2022 Geovanne Atanazio and Mayara Machado all right reserved,powered by GitbookArquivo revisado pela última vez em 28/05/2022

results matching ""

    No results matching ""