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:
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.Código PHP:
>>> def ola(nome):
... print 'Ola',nome
...
>>>
>>> ola('joão')
Ola joão
>>> ola('Maria')
Ola Maria
>>> ola('José')
Ola José
>>>
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:
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.Código PHP:
>>> def ola(nome):
... print 'Ola',nome
...
>>>
>>> ola('joão')
Ola joão
>>> ola(12)
Ola 12
>>> ola([1,2,3])
Ola [1, 2, 3]
>>>
Vamos fazer uma função que busque uma determinada letra dentro de uma frase:
Execução do código:Código PHP:
def conta_letra(letra_esperada, frase):
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')
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.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
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:
Dica: Crie uma função que tenha como argumento um lista de notas.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]}
2. Faça uma função que calcule o quadrado de uma dado número. Exemplo:
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:>>> quadrado(2) 4 >>> quadrado(4) 8 >>> quadrado(3) 9
Código:l1 = [1, 2, 3] l2 = [2,7,5,3] l3 = [7,3,9,5] l4 = [0, 1, -1] l5 = [-4, -2, -6]
[Curso de Python] Funções com Argumentos
17 de Junho de 2010, 0:00 - sem comentários ainda | Ninguém está seguindo este artigo ainda.
Visualizado 209 vezes
0sem comentários ainda