A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Recursividade, Entrada pelo teclado e Funções com retorno

Apresentações semelhantes


Apresentação em tema: "Recursividade, Entrada pelo teclado e Funções com retorno"— Transcrição da apresentação:

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?


Carregar ppt "Recursividade, Entrada pelo teclado e Funções com retorno"

Apresentações semelhantes


Anúncios Google