0% acharam este documento útil (0 voto)
13 visualizações19 páginas

AulaPython08 Funcoes

O documento aborda o conceito de funções em programação, destacando sua importância na estruturação e reutilização de código. Ele explica a ordem de execução, a estrutura, o corpo, os parâmetros e o retorno das funções, além de discutir a passagem de parâmetros e a recursão. Exemplos práticos são fornecidos para ilustrar os conceitos, como o cálculo de fatorial e a sequência de Fibonacci.

Enviado por

João Vitor
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
13 visualizações19 páginas

AulaPython08 Funcoes

O documento aborda o conceito de funções em programação, destacando sua importância na estruturação e reutilização de código. Ele explica a ordem de execução, a estrutura, o corpo, os parâmetros e o retorno das funções, além de discutir a passagem de parâmetros e a recursão. Exemplos práticos são fornecidos para ilustrar os conceitos, como o cálculo de fatorial e a sequência de Fibonacci.

Enviado por

João Vitor
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

30/05/2022

Prof. André Backes

Função
 Funções são blocos de código que podem ser
nomeados e chamados de dentro de um programa.
 print(): função que escreve na tela
 input (): função que lê o teclado

1
30/05/2022

Função
 Facilitam a estruturação e reutilização do código.
 Estruturação: programas grandes e complexos são
construídos bloco a bloco.
 Reutilização: o uso de funções evita a cópia
desnecessária de trechos de código que realizam a
mesma tarefa, diminuindo assim o tamanho do
programa e a ocorrência de erros

Função – Ordem de Execução


 Ao chamar uma função, o programa que a chamou é
pausado até que a função termine a sua execução
 Exemplo  Saída

2
30/05/2022

Função - Estrutura
 Forma geral de uma função

 Toda função começa com o comando def, seguido de


um nome associado a aquela função, nomefunção

Função - Corpo
 O corpo da função é a sua alma.
 É formado pelos comandos que a função deve executar
 Ele processa os parâmetros (se houver), realiza outras
tarefas e gera saídas (se necessário)

3
30/05/2022

Função - Corpo
 De modo geral, evita-se fazer operações de leitura e
escrita dentro de uma função
 Uma função é construída com o intuito de realizar uma
tarefa específica e bem-definida
 As operações de entrada e saída de dados (input () e
print()) devem ser feitas em quem chamou a função
 Isso assegura que a função construída possa ser utilizada
nas mais diversas aplicações, garantindo a sua
generalidade

Função - Parâmetros
 A lista de parâmetros é uma lista de variáveis
 nome1, nome2, ... , nomeN
 Pode-se definir quantos parâmetros achar necessários

 Pode-se deixar os parênteses vazios se a função não


recebe nenhum parâmetro de entrada

4
30/05/2022

Função - Parâmetros
 É por meio dos parâmetros que uma função recebe
informação do programa principal (isto é, de quem a
chamou)
 Não é preciso fazer a leitura das variáveis dos parâmetros
dentro da função
 Na chamada abaixo, o parâmetro x recebeu o valor 5
enquanto o parâmetro y recebeu o valor de z

Função - Parâmetros
 Podemos definir valores padrão para parâmetros da
função (tem de vir sempre no final)
 Isso faz com que aquele parâmetro se torne opcional,
ou seja, se não for definido o valor padrão será usado.
 Exemplo:

 Saída:

5
30/05/2022

Função - Retorno
 Uma função pode ou não retornar um valor
 Se ela retornar um valor, alguém deverá receber este
valor. O valor retornado pela função é dado pelo
comando return

Função - Retorno
 Uma função pode ter mais de uma declaração return.
 Quando o comando return é executado, a função
termina imediatamente
 Todos os comandos restantes são ignorados

6
30/05/2022

Declaração de Funções
 Funções devem ser declaradas antes de serem
utilizadas
 Exemplo

 Saída

Declaração de Funções
 Uma função criada pelo programador pode utilizar
qualquer outra função, inclusive as que foram criadas
 Exemplo

 Saída

7
30/05/2022

Variáveis dentro da função


 Funções estão sujeitas ao escopo das variáveis
 Uma variável definida no programa e sem indentação é
global. Ou seja, ela pode ser acessada em qualquer lugar
do programa ou função

Exemplo Saída

Variáveis dentro da função


 Funções estão sujeitas ao escopo das variáveis
 Uma variável global pode ser acessada em qualquer
lugar do programa ou função, mas não pode ser alterada
pela função
 Na verdade, ao tentar alterar uma variável global o que ocorre
é a criação de uma variável local que ofusca completamente a
variável global

Exemplo Saída

8
30/05/2022

Variáveis dentro da função


 Funções estão sujeitas ao escopo das variáveis
 Para atribuir um novo valor a uma variável global
precisamos utilizar o comando global
 Isso faz com que a variável manipulada dentro da função
seja a do escopo global

Exemplo Saída

Variáveis dentro da função


 Funções estão sujeitas ao escopo das variáveis
 Variáveis definidas dentro da função (com indentação
ou parâmetros) somente podem ser acessadas dentro da
função, nunca fora dela

Exemplo

Saída

9
30/05/2022

Passagem de Parâmetros
 Em várias linguagens de programação, o tipo de
passagem de parâmetros usado define se as
modificações realizadas nos parâmetros dentro da
função se irão se refletir fora da função

 Na linguagem Python, os parâmetros de uma função


podem ou não ser modificado, sendo definidos como
mutáveis e imutáveis

Passagem de Parâmetros
 Na verdade, sempre que passamos um parâmetro para
a função, estamos passando a referência a um objeto
via atribuição

10
30/05/2022

Passagem de Parâmetros
 Porém, atribuições dentro da função geram novos
objetos, fazendo com que o conteúdo do parâmetro
passado originalmente se torne imutável

Exemplo Saída

Passagem de Parâmetros
 Parâmetros imutáveis
 O conteúdo/valor do parâmetro
é modificado dentro da função
via atribuição.
 Isso gera um novo objeto
 Mesmo que esse valor mude
dentro da função, nada
acontece com o valor de fora da
função

11
30/05/2022

Passagem de Parâmetros
 Parâmetros mutáveis
 O conteúdo/valor do
parâmetro é modificado
dentro da função sem
usar a operação de
atribuição
 Isso gera não um novo
objeto
 Nesse caso, alterar o
parâmetro pode
influenciar no “valor” da
variável fora da função

Recursão
 Em Python, uma função pode chamar outra função
 Por exemplo, dentro de qualquer função que nós
criarmos é possível chamar a função print() ou input(),
ou qualquer função definida pelo programador

 Uma função também pode chamar a si própria


 A qual chamamos de função recursiva.

12
30/05/2022

Recursão
 A recursão também é chamada de definição circular.
Ela ocorre quando algo é definido em termos de si
mesmo.
 Um exemplo clássico de função que usa recursão é o
cálculo do fatorial de um número:
 3! = 3 * 2!
 4! = 4 * 3!
 n! = n * (n - 1)!

Recursão
0! = 1
1! = 1 * 0!
2! = 2 * 1!
3! = 3 * 2!
4! = 4 * 3!

n! = n * (n - 1)! : fórmula geral


0! = 1 : caso-base

13
30/05/2022

Recursão
 Em geral, formulações recursivas de algoritmos são
frequentemente consideradas "mais enxutas" ou "mais
elegantes" do que formulações iterativas
 Porém, algoritmos recursivos tendem a necessitar de
mais espaço de memória do que algoritmos iterativos

Recursão - fatorial
Sem recursão Com recursão

14
30/05/2022

Recursão
 Todo cuidado é pouco ao se fazer funções recursivas
 Critério de parada: determina quando a função deverá
parar de chamar a si mesma
 O parâmetro da chamada recursiva deve ser sempre
modificado, de forma que a recursão chegue a um
término

Recursão
 Exemplo: fatorial

15
30/05/2022

Recursão
 O que acontece na chamada da função fatorial com um
valor como N = 4?
 y= fatorial (4);

Recursão
 Uma vez que chegamos ao caso-base, é hora de fazer o
caminho de volta da recursão.

16
30/05/2022

Fibonacci
 Essa sequência é um exemplo clássico de recursão
 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
 Sua solução recursiva é muito mais elegante e
simples...

Fibonacci
 ... mas como se verifica na imagem, elegância não
significa eficiência
2 1
fibo(4)

1 1 1 0
fibo(3) fibo(2)

1 0
fibo(2) fibo(1) fibo(1) fibo(0)

fibo(1) fibo(0)

17
30/05/2022

Fibonacci
 Aumentando para fibo(5)
3 2
fibo(5)

2 1 1 1
fibo(4) fibo(3)

1 1 1 0 1 0
fibo(3) fibo(2) fibo(2) fibo(1)
0

1 0
fibo(2) 0 fibo(1) fibo(1) fibo(0) fibo(1) fibo(0)

fibo(1) fibo(0)

Fibonacci
 Comparação de tempo
 Execução

 Saída

18
30/05/2022

Material Complementar
 Vídeo Aulas
 Aula 28 - Função: definição
 https://youtu.be/JiltwM2iqJE
 Aula 29 - Função: declaração
 https://youtu.be/yhC4MAqHBPw
 Aula 30 - Função: variáveis e escopo
 https://youtu.be/egIV7E7KvdI

Material Complementar
 Vídeo Aulas
 Aula 31 - Função: passagem de parâmetros
 https://youtu.be/JFpodcSZsHw
 Aula 32 - Função: recursão (parte 1)
 https://youtu.be/O__z52PzkfY
 Aula 33 - Função: recursão (parte 2)
 https://youtu.be/clIhHcHB9n8

19

Você também pode gostar