Funções em Python
As funções representam blocos de código que executam uma tarefa específica e podem ser reutilizadas em outras partes do programa. Já utilizamos funções em temas anteriores, como a função print()
, que exibe um valor no console. O Python possui muitas funções integradas e também permite que você defina suas próprias funções. O formato de definição de uma função é o seguinte:
def nome_da_funcao(parametros_opcionais):
instrucoes
A definição de uma função começa com a palavra-chave def
, seguida pelo nome da função, um par de parênteses que pode conter ou não parâmetros, e um dois-pontos. Se a função tiver parâmetros, eles serão colocados dentro dos parênteses; caso contrário, os parênteses ficam vazios. Na linha seguinte, o bloco de instruções que compõe a função é inserido, sendo que todas as instruções dentro da função devem ter indentação em relação ao início da linha.
Exemplo de uma função simples:
def say_hello():
print("Hello")
A função acima chama-se say_hello
. Ela não possui parâmetros e contém uma única instrução, que imprime a palavra "Hello" no console.
Note que todas as instruções da função devem estar corretamente indentadas. Veja o exemplo abaixo:
def say_hello():
print("Hello")
print("Bye")
No exemplo acima, o código print("Bye")
não faz parte da função say_hello
porque não está indentado.
Para chamar uma função, basta escrever o nome da função seguido de parênteses, passando ou não os valores para os parâmetros, se necessário:
nome_da_funcao(parametros_opcionais)
Por exemplo, podemos definir e chamar a função say_hello
da seguinte maneira:
def say_hello(): # definição da função say_hello
print("Hello")
say_hello() # chamada da função say_hello
say_hello()
say_hello()
Neste caso, a função say_hello
é chamada três vezes, e o resultado no console será:
Hello Hello Hello
Note que a função precisa ser definida antes de ser chamada.
Se a função possuir apenas uma instrução, você pode colocá-la na mesma linha da definição:
def say_hello(): print("Hello")
say_hello()
Definindo e chamando várias funções
Da mesma forma, podemos definir e executar várias funções. Veja o exemplo:
def say_hello():
print("Hello")
def say_goodbye():
print("Goodbye")
say_hello()
say_goodbye()
A saída no console será:
Hello Goodbye
Funções Locais
Uma função pode ser definida dentro de outra função, o que chamamos de função local. Essas funções só podem ser usadas dentro da função em que foram definidas. Veja o exemplo:
def print_messages():
# definição de funções locais
def say_hello():
print("Hello")
def say_goodbye():
print("Goodbye")
# chamando as funções locais
say_hello()
say_goodbye()
# chamando a função print_messages
print_messages()
# say_hello() # fora da função print_messages, say_hello não está disponível
Neste caso, as funções say_hello
e say_goodbye
são locais para a função print_messages
, ou seja, só podem ser usadas dentro dela.