Buscar

Aula 9 - Programação Rad - DESENVOLVIMENTO RÁPIDO DE APLICAÇÕES EM PYTHON

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 12 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 12 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 12 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

27/06/2022 12:33 Disciplina Portal
https://estudante.estacio.br/disciplinas/estacio_7100507/temas/9/conteudos/1 1/12
Programação RAD
Aula 9: Funções
INTRODUÇÃO
Nas aulas anteriores, apresentamos o tema orientação a objetos e aprendemos a de�nir métodos em cada classe, os
quais, em termos de sintaxe, são bem parecidos com funções. Mas, até agora, nossos exemplos foram simples e
baseados no IDLE praticamente. 
É hora de criarmos programas maiores e mais funcionais em arquivos separados. A ideia é aprofundar o conhecimento
sobre as particularidades da linguagem Python, a �m de desenvolver programas mais extensos e executá-los fora do
IDLE. 
Nesta aula, vamos estudar um pouco mais as funções e aprender a inseri-las nesses programas.
OBJETIVOS
27/06/2022 12:33 Disciplina Portal
https://estudante.estacio.br/disciplinas/estacio_7100507/temas/9/conteudos/1 2/12
Descrever funções em Python.
Criar programas maiores e estruturados nessa linguagem.
27/06/2022 12:33 Disciplina Portal
https://estudante.estacio.br/disciplinas/estacio_7100507/temas/9/conteudos/1 3/12
FUNÇÕES
Vamos começar nossa aula tratando de alguns detalhes referentes às funções que podem fazer a diferença em termos de
produtividade. 
A função é criada com a palavra reservada def: Veja o exemplo:
def funcao1(): 
 pass
Esperamos que toda função retorne algum valor. Para isso, usamos a palavra-chave return. O exemplo a seguir
implementa uma função mais completa, embora ainda simples. Observe:
1: def temp_F(temp_C):
2: valor = (temp_C*9/5)+32
3: return valor
O return não é obrigatório. Como mencionamos, um valor de retorno de função é esperado, mas, nem sempre, é
obrigatório. Em algumas linguagens de programação, quando isso ocorre, a função é chamada de procedure
(procedimento). 
Veja um exemplo:
Como você percebeu, o resultado visual é o mesmo, e não usamos return.
Agora, vamos analisar o código:
def temp_F(temp_C): 
 valor = (temp_C*9/5)+32 
 return valor
Com return
Sem return
1: def temp_F(temp_C): 
2: valor = (temp_C*9/5)+32 
3: return valor
x
1: def temp_F(temp_C=25): 
2: valor = (temp_C*9/5)+32 
3: print("°C=",temp_C," °F=",valor) 
4: 
5: temp_F()
27/06/2022 12:33 Disciplina Portal
https://estudante.estacio.br/disciplinas/estacio_7100507/temas/9/conteudos/1 4/12
A função do exemplo possui como nome “temp_F” e tem como objetivo converter uma temperatura que é recebida no
argumento temp_C.
O resultado da conversão é processado pela fórmula de conversão de temperatura na linha 2, e o resultado é armazenado
na variável valor.
A função devolve para o chamador o valor na linha 3 por meio da palavra return. Toda vez que encontrar essa palavra, a
função será interrompida, e o resultado, devolvido para o chamador.
Vamos incrementar o exemplo colocando uma parte para interação com o usuário:
1: def temp_F(temp_C):
2: valor = (temp_C*9/5)+32
3: return valor
4:
5: temp = input("Digite a temperatura em graus Celsius:
")
6: temp = float(temp)
7: temp_F = print("O valor da temperatura em graus
Fahrenheit é:", temp_F(temp))
As linhas 5 a 7 criam uma forma de o usuário digitar a temperatura em Celsius e, em seguida, de vê-la convertida para
Fahrenheit. 
Também é possível retornar mais de um valor (= objeto): podemos implementar funções que não retornem apenas um
valor de tipo primitivo, mas também arrays, listas, objetos etc. 
Vamos analisar um exemplo simples, em que modi�camos a função de conversão de temperatura e acrescentamos a
conversão para a escala Kelvin ou absoluta:
1: def temperatura(C):
2: F = (C*9/5)+32
3: K = C + 273
4: return(F,K)
5:
6: (tempF,tempK) = temperatura(25)
7: print("°C=25, °F=",tempF)
27/06/2022 12:33 Disciplina Portal
https://estudante.estacio.br/disciplinas/estacio_7100507/temas/9/conteudos/1 5/12
8: print("°C=25, K=",tempK)
Como você observou, é possível receber mais do que um retorno de funções. Nesse caso, usamos tipos simples da
linguagem, que podem ser listas, objetos etc.
PARÂMETROS
No exemplo anterior, vimos que a função temp_F possui um argumento apenas. Em Pyhon, é possível estabelecer um
valor padrão para o argumento. 
Veja o exemplo:
1: def temp_F(temp_C=25):
2: valor = (temp_C*9/5)+32
3: return valor
4:
5: print("Chamando a função com valor padrão. °C=25,
°F=",temp_F())
Agora, na linha 1, há um valor padrão (opcional) que funciona quando o chamador da função não passa nenhum
parâmetro, como ocorre na linha 5. Observe que temp_F() não tem parâmetros, e, dentro da função, o argumento temp_C
tem valor 25 como padrão.
ESCOPO E TEMPO DE VIDA DE VARIÁVEIS
O escopo de uma variável é a parte de um programa na qual a variável é reconhecida. Os parâmetros e as variáveis
de�nidas dentro de uma função não são visíveis fora dela. Isso é o que chamamos de escopo local. 
Já o tempo de vida de uma variável é o período no qual a variável existe na memória. Dentro de uma função, esse período
compreende o intervalo desde o momento no qual é chamada até o �m de sua execução. 
Quando há retorno da função, as variáveis são destruídas. Portanto, a função não consegue “lembrar” o valor de uma
variável após sua execução. 
Veja os exemplos a seguir.
     
Exemplo 1
Código O que será
impresso
27/06/2022 12:33 Disciplina Portal
https://estudante.estacio.br/disciplinas/estacio_7100507/temas/9/conteudos/1 6/12
 1: def
funcao(): 
 2: print(x) 
 3: 
 4: x = "Teste" 
 5: funcao()
Teste
A variável x foi de�nida fora da função e terá o mesmo valor dentro dela. Logo, seu valor não será modi�cado.
     
Exemplo 2
Código O que será
impresso
 1: def
funcao(): 
 2: x = "Olá
mundo!" 
 3: print(x) 
 4 
 5: x = "Teste" 
 6: funcao() 
 7: print(x)
Olá mundo! 
Teste
Há uma variável fora e dentro da função com o mesmo nome (x). Nesse caso, embora os nomes sejam iguais, o “x” de
dentro da função é outra variável, e seu escopo reside na função. 
Já o “x” de fora tem o escopo fora da função. Trata-se de variável diferente, com outro endereço de memória e apenas o
mesmo nome da variável interna da função de�nida na linha 2.
     
Exemplo 3
Código O que será impresso
27/06/2022 12:33 Disciplina Portal
https://estudante.estacio.br/disciplinas/estacio_7100507/temas/9/conteudos/1 7/12
 1: def
funcao(): 
 2: print(x) 
 3: x = "Olá
mundo!" 
 4: print(x) 
 5: 
 6: x = "Teste" 
 7: funcao() 
 8: print(x)
Olá mundo! 
Erro!
 
UnboundLocalError: local variable
'x' referenced before assignment
Encontramos um problema: a variável x interna da função foi de�nida após o print da linha 2. 
Entretanto, na função (linha 3), outra variável x foi criada. A linguagem Python processa isso, veri�cando que, no interior
da função, há uma variável x dentro do escopo. Mas, antes, apareceu certo comando com uma variável x diferente. Disso
resulta o erro.
     
Exemplo 4
Código O que será impresso
 def funcao(): 
 2: global x 
 3: print(x) 
 4: x = "Olá mundo!" 
 5: print(x) 
 6: 
 7: x = "Teste" 
 8: funcao() 
 9: print(x)
Teste 
Olá mundo! 
Olá mundo!
Corrigimos o erro, acrescentando a palavra-chave global na linha 2. Isso indica que o x referido na linha 3 vem de fora da
função e é uma variável global. 
Na linha 4, a variável x tem o valor modi�cado, o qual é levado para fora da função. É possível perceber isso na linha 9:
agora, seu valor é “Olá mundo!”, e, antes da chamada, era “Teste”. Em algumas situações, você pode usar esse recurso
nos programas.
27/06/2022 12:33 Disciplina Portal
https://estudante.estacio.br/disciplinas/estacio_7100507/temas/9/conteudos/1 8/12
UM PROGRAMA, VÁRIAS FUNÇÕES
Até agora, em todas as aulas, apresentamos exemplos curtos, simplese diretos apenas para mostrar a praticidade de um
comando ou recurso, mas não vimos um programa maior e mais “real”. 
Em Python, é possível criar interfaces grá�cas. Por enquanto, vamos nos concentrar em um exemplo mais simples, mas
que pode inspirar várias ideias mais bem elaboradas.
Criaremos uma pequena calculadora. O programa conterá um menu no qual o usuário escolherá a operação que deseja
fazer e repetirá até escolher sair do programa. 
De�niremos algumas funções que serão chamadas ao longo do programa. Não usaremos orientação a objetos para
facilitar o aprendizado do tema. Para isso, mostraremos o programa completo (glossário) e explicaremos cada parte.
Diante das limitações do programa, na linha 1, o import é o diferencial: esse comando lê uma biblioteca do sistema –
denominada “os” (operational system) –, que contém a função os.system(‘cls’). Esta limpa a tela para deixar o programa
mais organizado na hora da execução.
Criando o Menu
01: import os 
02: 
03: def menu(): 
04:       escolha = 0 
05:       while (escolha!=5): 
06:              print("1- Adição") 
07:              print("2- Subtração") 
08:              print("3- Multiplicação") 
09:              print("4- Divisão") 
10:              print("5- Sair") 
11:              escolha = int(input("Faça sua escolha:")) 
12: 
13:              if escolha == 1: 
14:                                    (op1,op2)=entrada_dados() 
15:                                    resultado = adicao(op1,op2) 
16:              elif escolha == 2: 
17:                                    (op1,op2)=entrada_dados() 
18:                                    resultado = subtracao(op1,op2) 
19:              elif escolha == 3: 
https://stecine.azureedge.net/webaula/estacio/gon116/galeria/aula9/docs/a09_doc1.pdf
27/06/2022 12:33 Disciplina Portal
https://estudante.estacio.br/disciplinas/estacio_7100507/temas/9/conteudos/1 9/12
Uma calculadora pode ser implementada de várias maneiras: há funções que chamam funções, múltiplo retorno,
passagem de parâmetros e até mesmo um import – comando que não estudamos até o momento. 
O programa conta com um menu simples, o qual �cará repetindo enquanto o usuário não digitar a tecla “5”. 
Não tratamos de outros tipos de entradas, como letras ou símbolos especiais. Isso �ca para você como atividade, ok? 
Ao teclar “1”, “2”, “3” ou “4”, o menu chama a função entrada_dados() – comum para todas as operações –, que guarda
dois operandos, os quais serão usados nas operações posteriores, escolhidas pelo usuário de acordo com a entrada no
menu.
Em cada operação, a função recebe os operandos lidos pela entrada_dados, pois faz parte do escopo da função externa.
Após a operação, o retorno é feito pela variável resultado – mostrado no menu depois da chamada da função da operação
respectiva.
20:                                    (op1,op2)=entrada_dados() 
21:                                    resultado = multiplicacao(op1,op2) 
22:              elif escolha == 4: 
23:                                    (op1,op2)=entrada_dados() 
24:                                    resultado = divisao(op1,op2) 
25:              elif escolha==5: 
26:                                    cai_fora() 
27: 
28:              print("O resultado é: ",resultado)
Entrada de dados
                        30: def entrada_dados(): 
                        31:            operando1 = �oat(input("Operando 1: ")) 
                        32:            operando2 = �oat(input("Operando 2: ")) 
                        33:            return (operando1,operando2)
Adição
35: def adicao(op1,op2): 
36:      os.system('cls') 
37:      print("*** ADIÇÃO ***") 
38:      resultado = op1+op2 
39:      return resultado
Subtração
41: def subtracao(op1,op2): 
42:      os.system('cls') 
43:      print("*** SUBTRAÇÃO ***") 
44:      resultado = op1-op2 
45:      return resultado
Multiplicação
47: def multiplicacao(op1,op2): 
48:      os.system('cls') 
49:      print("*** MULTIPLICAÇÃO ***") 
50:      resultado = op1*op2 
51:      return resultado
27/06/2022 12:33 Disciplina Portal
https://estudante.estacio.br/disciplinas/estacio_7100507/temas/9/conteudos/1 10/12
Para sair da calculadora, chamaremos a função cai_fora.
Como você percebeu, criamos várias funções nas linhas: 
• 3 (menu); 
• 30 (entrada_dados); 
• 35 (adicao); 
• 41 (subtracao); 
• 47 (multiplicacao); 
• 53 (divisao); 
• 59 (cai_fora).
AGORA É SUA VEZ!
Como você deve imaginar, existem muito mais assuntos relacionados com funções que não exploramos aqui. Mas demos
o pontapé inicial para você procurar outros recursos na internet e continuar a estudar o tema. 
Lembre-se de digitar o programa da calculadora e vá mais além: crie uma própria. 
Bom trabalho!
ATIVIDADES
1. Escreva o que será impresso pelos programas a seguir:
1: x = 1 
2: def funcao(): 
3: global x 
4: print('x = ',x) 
5: x = 2 
6: print('x global =',x) 
7: 
8: funcao() 
9: print('Valor de x=',x)
Resposta Correta
Divisão
53: def divisao(op1,op2): 
54:      os.system('cls') 
55:      print("*** DIVISÃO ***") 
56:      resultado = op1/op2 
57:      return resultado
Saindo do programa
                                                      59: def cai_fora(): 
                                                      60:      print("\n Tchau! \n") 
                                                      61:      quit() 
                                                      62: 
                                                      63: menu()
27/06/2022 12:33 Disciplina Portal
https://estudante.estacio.br/disciplinas/estacio_7100507/temas/9/conteudos/1 11/12
1: i = 1 
2: def funcao(): 
3: global i 
4: for j in (1, 2, 3): 
5: i += 1 
6: 
7: funcao() 
8: print(i) 
Resposta Correta
2. Analise o programa a seguir:
def maior(a, b): 
 if a > b: 
 print(a, 'é o maior') 
 elif a == b: 
 print(a, 'é igual a', b) 
 else:
 print(b, 'é o maior') 
maior(3, 4)
Qual será sua saída?
a) 3
b) 4
c) 4 é o maior
d) N.R.A.
Justi�cativa
3. Se o return for omitido em uma função, o que acontecerá?
a) A função retornará 0.
b) A função não retornará nada.
c) A função retornar um número qualquer.
d) A função dará erro, pois é obrigatório ter return.
Justi�cativa
4. Veja um exemplo de funções recursivas em Python:
def Foo(x): 
 if (x==1): 
27/06/2022 12:33 Disciplina Portal
https://estudante.estacio.br/disciplinas/estacio_7100507/temas/9/conteudos/1 12/12
 return 1 
 else:
 return x+Foo(x-1) 
print(Foo(4))
Qual será sua saída?
a) 10
b) 24
c) 7
d) 1
Justi�cativa
Glossário

Continue navegando