Conhecidas pelo nome de sub-rotina, as funções possuem um nome e, como sua própria denominação sugere, realizam uma função específica. No entanto, uma função pode ser comparada a um programa completo. Como vimos anteriormente, um programa contém entrada, processamento e saída, e o mesmo pode ocorrer com uma função. Por exemplo, uma função pode receber uma frase, realizar um processamento interno para a contagem de vogais e retornar a quantidade de vogais existentes nessa frase.
Funcionamento
Em Python, uma função é definida usando a palavra-chave “def” seguida do nome da função e seus parâmetros. A definição da função é seguida por um bloco de código indentado que define as instruções que a função executará.
Por exemplo, vamos criar uma função simples que adiciona dois números e retorna o resultado:
1
2
3
def add_numbers(a, b):
result = a + b
return result
Neste exemplo, a função add_numbers
recebe dois parâmetros a
e b
. O bloco de código da função adiciona esses dois parâmetros e armazena o resultado na variável result
, que é então retornada pela função.
Podemos chamar a função add_numbers
passando dois argumentos:
1
2
x = add_numbers(3, 5)
print(x)
Neste exemplo, estamos passando os valores 3
e 5
para a função add_numbers
. A função executa a operação de adição e retorna o resultado 8
, que é armazenado na variável x
. Em seguida, usamos a função print()
para exibir o valor armazenado em x
.
Além de receber parâmetros e retornar valores, as funções em Python também podem ter variáveis locais e globais. Variáveis locais são definidas dentro do escopo da função e só podem ser acessadas dentro da função, enquanto as variáveis globais são definidas fora da função e podem ser acessadas de qualquer lugar no código.
Por exemplo, vamos modificar nossa função add_numbers
para usar uma variável global:
1
2
3
4
5
6
global_var = 10
def add_numbers(a, b):
local_var = 5
result = a + b + global_var + local_var
return result
Neste exemplo, estamos definindo uma variável global global_var
fora da função add_numbers
. Dentro da função, também estamos definindo uma variável local local_var
. O bloco de código da função adiciona os parâmetros a
e b
, a variável global global_var
e a variável local local_var
e retorna o resultado.
Podemos chamar a função add_numbers
da mesma forma que fizemos anteriormente:
1
2
x = add_numbers(3, 5)
print(x)
Neste exemplo, a função add_numbers
adiciona os valores 3
e 5
aos valores das variáveis global e local (10
e 5
, respectivamente) e retorna o resultado 23
, que é armazenado na variável x
e, em seguida, exibido com a função print()
.
Em resumo, funções em Python permitem encapsular blocos de código em unidades reutilizáveis que recebem parâmetros e retornam valores. Essa funcionalidade é muito útil para reduzir a complexidade do código, tornando-o mais modular e fácil de ler e manter.
Exercícios
- Criar uma função que calcule o fatorial de um número inteiro.
- Criar uma função que receba uma lista de números e retorne a soma de todos os números pares.
- Criar uma função que receba uma string e retorne a mesma string invertida.
- Criar uma função que receba uma lista de números e retorne o maior e o menor número da lista.
- Criar uma função que receba uma lista de strings e retorne uma nova lista com todas as strings maiúsculas.
- Cria um menu de opções para acessar cada função anterior.
Resolução
1. fatorial de um número inteiro
1
2
3
4
5
def fatorial(n):
if n == 0:
return 1
else:
return n * fatorial(n-1)
2. soma de todos os números pares
1
2
3
4
5
6
def soma_pares(lista):
total = 0
for numero in lista:
if numero % 2 == 0:
total += numero
return total
3. texto invertido
1
2
def inverte_string(string):
return string[::-1]
4. maior e o menor número
1
2
3
4
5
6
7
8
9
def maior_menor(lista):
maior = lista[0]
menor = lista[0]
for numero in lista:
if numero > maior:
maior = numero
if numero < menor:
menor = numero
return maior, menor
5. retornar texto em maiúsculo
1
2
3
4
5
def maiusculas(lista):
nova_lista = []
for string in lista:
nova_lista.append(string.upper())
return nova_lista
6. menu de opções para as funções
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
while True:
print("Selecione uma opção:")
print("1. Calcular o fatorial de um número")
print("2. Calcular a soma de números pares em uma lista")
print("3. Inverter uma string")
print("4. Encontrar o maior e o menor número em uma lista")
print("5. Transformar uma lista de strings em maiúsculas")
print("0. Sair")
opcao = int(input("Opção selecionada: "))
if opcao == 1:
numero = int(input("Digite um número: "))
resultado = fatorial(numero)
print("O fatorial de {} é {}".format(numero, resultado))
elif opcao == 2:
lista = input("Digite uma lista de números separados por vírgula: ").split(",")
lista = [int(numero) for numero in lista]
resultado = soma_pares(lista)
print("A soma dos números pares na lista é {}".format(resultado))
elif opcao == 3:
string = input("Digite uma string: ")
resultado = inverte_string(string)
print("A string invertida é: {}".format(resultado))
elif opcao == 4:
lista = input("Digite uma lista de números separados por vírgula: ").split(",")
lista = [int(numero) for numero in lista]
maior, menor = maior_menor(lista)
print("O maior número na lista é {} e o menor é {}".format(maior, menor))
elif opcao == 5:
lista = input("Digite uma lista de strings separadas por vírgula: ").split(",")
resultado = maiusculas(lista)
print("A lista de strings em maiúsculas é: {}".format(resultado))
elif opcao == 0:
break
else:
print("Opção inválida. Tente novamente.")
Referência
Furgeri, Sérgio Introdução à programação em Python - cap. 6 E-book. Disponível em: https://bibliotecadigitalsenac.com.br/?from=%3FcontentInfo%3D3011#/legacy/epub/3011 Acesso em 14/04/2023