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

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

Prof. Natalia Castro Fernandes Mestrado em Telecomunicações – UFF 2º semestre/2012.

Apresentações semelhantes


Apresentação em tema: "Prof. Natalia Castro Fernandes Mestrado em Telecomunicações – UFF 2º semestre/2012."— Transcrição da apresentação:

1 Prof. Natalia Castro Fernandes Mestrado em Telecomunicações – UFF 2º semestre/2012

2 Introdução Programas são divididos em subprogramas ou funções Funções são chamadas por um identificador e uma lista de parâmetros Funções podem retornar valores

3 Funções em Python Formato geral: def nome (arg, arg,... arg): comando... comando Nome da função Argumentos da função (0 ou mais argumentos) Comandos (0 ou mais)

4 Retorno de funções Uma função pode retornar um valor/estrutura Valor calculado Código de erro Comando return Uso: return expressão Quando a execução chega a um return, a função termina, voltando ao ponto aonde a função foi chamada Se nenhum valor de retorno for especificado, a função retorna None expressão é opcional

5 Exemplos

6 Parâmetros de funções Parâmetros ou entradas ou argumentos Podem ser passados por valor ou referência Valor = A função recebe uma cópia da variável e alterações do valor dentro da função não afetam as variáveis originais Referência = A função recebe a referência da variável e alterações do valor dentro da função afetam as variáveis originais

7 Passagem por valor Variável não é modificada Exemplos Se o parâmetro existe, ele precisa ser passado

8 Passagem por valor

9 Argumentos padrão Determinam um valor padrão para uma determinada entrada Nesse caso, a entrada não precisa ser especificada Assume valor pré-determinado Uso: Formato: def nome (arg1=default1,..., argN=defaultN) Se apenas alguns argumentos possuem padrões, então esses devem vir por último Evita ambiguidade na definição dos argumentos

10

11 Passagem por referência Modifica o valor da variável original Feito com o uso de listas e dicionários

12

13 Contudo... Por que não mudou?

14 Valor x Referência Todos os parâmetros são passados por valor A lista e o dicionário são referências O que é passado para a função é o endereço do espaço de memória Endereço não pode ser mudado, mas o espaço de memória apontado não está protegido e pode ser modificado

15 Valor x Referência >>>Lista=[1,3] >>>Lista.append(2) Memória antesMemória depois 1,31,3,2 >>>Lista=[str] Memória antesMemória depois 1,3,2 str Lista – começa no endereço 2 Lista – começa no endereço 7

16 Valor x Referência >>>Lista=[1,3] >>>funcao(Lista) Estou passando a informação lista que começa no endereço x

17 Valor x Referência Executando a função Memória antesMemória depois 1,31,3,2 >>>Lista=[str] Memória antesMemória depois 1,3,2 str Lista – começa no endereço x Valor interno da lista >>>Lista.append(2) Valor interno da lista Lista – começa no endereço x

18 Variáveis locais e globais Variáveis definidas dentro de funções são locais Não tem valor fora da função Variáveis definidas fora de funções são globais Para uma função usar variável global, é preciso declarar a variável como global

19 Variáveis locais e globais Exemplos

20 Não faça isso!!!!

21 Evite usar global!!! Passe valores como argumentos da função!!!

22 Lista de parâmetros variável Uma lista de parâmetros de tamanho variável pode ser passada para a função Uso do último argumento com * Todos os valores passados a partir desse ponto são colocados em uma tupla Uso: def funcao(arg1, arg2,..., *argn)

23 Lista de parâmetros variável Exemplo resto =(3,) resto =(3,4,5,6) resto =()

24 Recursividade Forma de resolver problemas Resolução de uma função implica em rechamar essa mesma função Exemplo: Fibonacci def Fibonacci(i): if i==0: return 0 if i==1: return 1 return Fibonacci(i-1)+Fibonacci(i-2) i-ésimo elemento da sequência

25 Exercício Calcule a função fatorial recursivamente Calcule o e-nésimo elemento de uma PA recursivamente Guarde, em uma lista, os n+1 elementos de uma PA recursivamente Faça um programa que calcula a área de uma forma geométrica. Os parâmetros para calcular a área devem ser passados para a função como parâmetros, assim como o nome da forma. O seu programa deve ser capaz de responder a quadrado, retângulo, círculo e triângulo. Ex: Area(triangulo,base,altura) Area(circulo,raio)


Carregar ppt "Prof. Natalia Castro Fernandes Mestrado em Telecomunicações – UFF 2º semestre/2012."

Apresentações semelhantes


Anúncios Google