Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouOrlando Neto Terra Alterado mais de 7 anos atrás
1
Recursividade, Entrada pelo teclado e Funções com retorno
Dilvan Moreira
2
Lembrando ... Funções devem serem definidas antes de seu primeiro uso
É possível definir suas próprias funções com parâmetros A função funciona para mais de um tipo de dados. def printTwice(bruce): print bruce, bruce
3
Lembrando.. Por que a linha de código print cat não funciona???
def catTwice(part1, part2): cat = part1 + part2 printTwice(cat) chant1 = "Pie Jesu domine, " chant2 = "Dona eis requiem. " catTwice(chant1, chant2) print cat
4
Lembrando ... Operadores de comparação: x == y # x é igual a y
x != y # x é diferente de y x > y # x é maior que y x < y # x é menor que y x >= y # x é maior ou igual a y x <= y # x é menor ou igual a y Erro comum: (=) é diferente de(==)
5
Lembrando ... Operadores lógicos: and corresponde a “e” intercessão
X > 0 and x < 10 or corresponde a “ou” união dos conjuntos n%2 == 0 or n%3 == 0 not corresponde a “não” negação not(x > y)
6
Lembrando ...
7
Lembrando ... Condição que muda o comportamento do programa.
if x > 0: print "x eh positivo“ Se a condição for verdadeira a instrução endentada é executada Se não, nada acontece.
8
Objetivos Entender como utilizar recursividade, entrada pelo teclado e Funções com retorno. Leitura: do livro “Think Python” Cap. 5.8 ao Cap. 6.1
9
A instrução return Permite terminar a execução antes que ela alcance o fim Pode ser usada como uma forma de detectar uma condição de erro
10
A instrução return import math def imprimeLogaritmo(x): if x <= 0: print "Somente numeros positivos." return resultado = math.log(x) print "O log de x eh ", resultado
11
Recursividade É valido uma função chamar a si mesma
O processo de uma função chamando a si mesma é chamado de recursividade, e tais funções são ditas recursivas.
12
Recursividade def contagemRegressiva(n): if n == 0: print "Fogo!"
else: print n contagemRegressiva(n-1) O que essa função faz se for passado 3 como parâmetro?
13
Recursividade contagemRegressiva começa com n=3, e desde que n não é 0, produz como saída o valor 3, e então chama a si mesma... contagemRegressiva começa com n=2, e desde que n não é 0, produz como saída o valor 2, e então chama a si mesma... contagemRegressiva começa com n=1, e desde que n não é 0, produz como saída o valor 1, e então chama a si mesma...
14
Recursividade contagemRegressiva começa com n=0, e desde que n é 0, produz como saída a palavra "Fogo!" e então retorna. contagemRegressiva que tem n=1 retorna. contagemRegressiva que tem n=2 retorna. contagemRegressiva que tem n=3 retorna. Volta ao fluxo principal do programa
15
Recursividade Saída impressa na tela: 3 2 1 Fogo
16
Recursividade infinita
Se uma recursividade nunca chega ao fim O programa nunca termina def recursiva(): recursiva() Não roda para sempre Python reporta uma mensagem de erro quando a profundidade máxima de recursividade é alcançada
17
Entrada pelo teclado Funções nativas que pegam entradas do teclado.
A mais simples é raw_input O programa espera o usuário digitar algo e apertar a tecla Enter ou Return. Após o Enter, o programa retorna o que o usuário digitou para uma string.
18
Entrada pelo teclado Entrada de uma string
>>> nome = raw_input(“Nome? ") Nome? Arthur, Rei dos Bretões! >>> print nome Arthur, Rei dos Bretões!
19
Entrada pelo teclado Entrada de um inteiro
deixa = "Qual... eh a velocidade?\n" velocidade = input(deixa) O programa trava caso seja digitado um caractere em vez de um número Para evitar esse tipo de problema, se usa raw_input para pegar uma string e depois converte ele para inteiro
20
Valores de retorno Funções produzem resultados. e = math.exp(1.0)
height = radius * math.sin(radians) O resultado pode ser atribuído à uma variável, ou usado como parte de uma expressão. Mas como criar uma função que retorne um valor??
21
Valores de retorno Esta função retorna a área de um círculo, passando como parâmetro o raio import math def area(radius): temp = math.pi * radius**2 return temp
22
Valores de retorno return significa: "Retorne imediatamente desta função e use a expressão em seguida como um valor de retorno” Poderíamos ter reescrito a função anterior desta forma: def area(radius): return math.pi * radius**2 Porém com o uso da variável temp, fica mais fácil a depuração.
23
Múltiplos comandos de return
Apenas um return será executado: Quando qualquer return executará, a função termina a execução def absolute_value(x): if x < 0: return -x else: return x
24
return O linha de código print x será executado???
def absolute_value(x): if x < 0: return –x print x Não, pois existe um return antes.
25
Múltiplos comandos de return
def absolute_value(x): if x < 0: return -x if x > 0: return x print absolute_value(0) Qual será a saída?
26
Perguntas?
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.