Ir para o conteúdo
ou

Software livre Brasil

Magnun

Nenhum artigo selecionado ainda.
 Voltar a Blog
Tela cheia

[Curso de Python] Funções com Argumentos

17 de Junho de 2010, 0:00 , por Software Livre Brasil - 0sem comentários ainda | Ninguém está seguindo este artigo ainda.
Visualizado 209 vezes

Antes de prosseguir leia os artigos anteriores aqui.



No último post sobre funções em Python eu mostrei o básico do básico com as funções. De uma certa forma aquela abordagem é errada e deve ser evitada. Ainda não irei explicar exatamente o porque pois isso depende de um conceito de variáveis locais e globais que eu estarei explicando após ensinar os argumentos das funções.


Funções com Argumentos



As funções se tornam praticamente inúteis se não forem utilizados os argumentos. Mas antes de mais nada, o que é um argumento?

Um argumento é uma variável passada para um função. Dessa forma a função se utiliza desse argumento para trabalhar. Vamos ver um exemplo:

Código PHP:
>>> def ola(nome):
...     print 
'Ola',nome
...
>>>
>>> 
ola('joão')
Ola joão
>>> ola('Maria')
Ola Maria
>>> ola('José')
Ola José
>>> 
Ao definir a função 'ola' eu informei que seria passado um argumento chamado 'nome' e que a função deveria imprimir a palavra 'ola' seguida pelo conteúdo da variável nome. Para quem já trabalhou com outras linguagens como C, C++ ou Java, isso parece algo absurdo pois não foi especificado o tipo da variável. Como vimos a muito tmepo atrás, o Python possui tipagem dinâmica. Com isso não é necessário informar o tipo da variável no argumento.

Esse comportamento pode ser vantajoso ou não, depende do desenvolvedor. O desenvolver Python geralmente é um programador disciplinado, ou seja, suas funções são concisas e bem definidas evitando problemas com o tipo do argumento. A baixo um exemplo de algo que devemos ter cuidado para não ocorrer:

Código PHP:
>>> def ola(nome):
...     print 
'Ola',nome
...
>>>
>>> 
ola('joão')
Ola joão
>>> ola(12)
Ola 12
>>> ola([1,2,3])
Ola [123]
>>> 
Por enquanto não se preocupem com esses problemas, eu irei mostrar uma forma de evitar esse tipo de ocorrências num futuro próximo. Por enquanto vamos ver alguns exemplo de funções.

Vamos fazer uma função que busque uma determinada letra dentro de uma frase:
Código PHP:
def conta_letra(letra_esperadafrase):
    
contador 0
    
for letra in frase:
        if 
letra == letra_esperada:
            
contador += 1
    
print 'Foram encontradas',contador,'ocorrências da letra',letra_esperada

conta_letra
('a''este e um teste')
conta_letra('e''este e um teste')
conta_letra('m''mais uma vez')
conta_letra('s''mais uma vez'
Execução do código:
Código:
Foram encontradas 0 ocorrências da letra a
Foram encontradas 5 ocorrências da letra e
Foram encontradas 2 ocorrências da letra m
Foram encontradas 1 ocorrências da letra s
Como podemos ver, uma função pode ter um ou mais argumentos. Nesse exemplo nossa função possui dois argumentos, uma letra e uma frase. A função percorre todas as letras da frase informada e conta quantas vezes a letra esperada aparece na frase. No final ela imprime o resultado da contagem.

Criar a função dessa forma é uma grande vantagem pois se podemos contar qualquer letra em qualquer frase. Se criássemos uma função que conta a letra 'a' e precisássemos de uma função que conta as ocorrências da letra e, teríamos que uma nova função. Isso é algo que deve ser planejado pelo programador. Devemos sempre tentar criar funções que sejam adaptáveis e reutilizáveis.


Exercícios:
1. Faça uma programa que utilize uma função para calcular a média dos alunos do dicionário a baixo:
Código:
notas = {'aluno1':[5,6,5], 'aluno2':[7,8,6], 'aluno3':[6,6,8], 'aluno4':[5,9,8], 'aluno5':[5,6,3], 'aluno6':[6,6,6]}
Dica: Crie uma função que tenha como argumento um lista de notas.


2. Faça uma função que calcule o quadrado de uma dado número. Exemplo:
Código:
>>> quadrado(2)
4
>>> quadrado(4)
8
>>> quadrado(3)
9
3. Faça uma função que encontre o maior número de uma determinada lista. Teste-a com as listas a baixo:
Código:
l1 = [1, 2, 3]
l2 = [2,7,5,3]
l3 = [7,3,9,5]
l4 = [0, 1, -1]
l5 = [-4, -2, -6]

Fonte: http://under-linux.org/blogs/magnun/%5Bcurso-de-python%5D-funcoes-com-argumentos-2129/

0sem comentários ainda

Enviar um comentário

Os campos são obrigatórios.

Se você é um usuário registrado, pode se identificar e ser reconhecido automaticamente.