[Curso de Python] Introdução à Funções em Python
10 de Junho de 2010, 0:00 - sem comentários aindaAntes de prosseguir leia os artigos anteriores aqui.
Olá pessoal!
A alguns dias concluímos o aprendizado básico de controle de fluxo usando o if, elif, else, while e o for. Agora vamos aprender a trabalhar com funções, uma outra estrutura que serve para controle de fluxo de um programa.
OIntrodução às Funções em Python
Definição: Uma função é um bloco de código que recebe a designação de um nome. Ela também possui parâmetros e argumentos e retornam um valor.
Como essa primeira parte é apenas introdutória vamos ver o básico de funções, nada de argumentos/parâmetros e nada de retornar valores.
O Python possui diversas funções predefinidas, algumas já até vistas por nos. Essas funções são comumente classificadas como built-in functions. Em um post futuro irei abordar as funções built-in mais importantes, por enquanto vamos aprender a como criar nossas próprias funções.
Defininado uma função
As funções em Python são definidas usando a palavra-chave def. Após o def inserimos o nome da função e um par de parênteses e dois pontos (:). Os dois pontos são fundamentais para a definição de uma função.
Assim como o while, o for o if, elif e o else os dois pontos definem o início de um novo bloco de código que obrigatoriamente deve ser identado. Vamos ver um exemplo:
Execução do programa:Código PHP:
def ola():
print 'Olá mundo!'
ola()
ola()
ola()
As funções são muito úteis para "compactar" um código. O nome correto disso é reutilização de código, é algo fundamental para um programador. Vamos ver um exemplo de reutilização de código. Vamos supor que precisamos de um programa que conte quantas vezes a letra aparece nas palavras ('teste', 'reutilizacao', 'codigo'). Para tornar essa necessidade mais explícita não podemos usar nenhuma forma de loop.Código:Olá mundo! Olá mundo! Olá mundo!
Primeiramente vamos ver uma resolução desse problema sem a utilização de funções:
Execução do código:Código PHP:
palavra = 'teste'
contador = 0
for letra in palavra:
if letra == 'a':
contador += 1
print 'Na palavra',palavra,'exitem',contador,'ocorrencias da letra a'
palavra = 'reutilizacao'
contador = 0
for letra in palavra:
if letra == 'a':
contador += 1
print 'Na palavra',palavra,'exitem',contador,'ocorrencias da letra a'
palavra = 'codigo'
contador = 0
for letra in palavra:
if letra == 'a':
contador += 1
print 'Na palavra',palavra,'exitem',contador,'ocorrencias da letra a'
Agora vamos rever como refazer o código acima utilizando funções:Código:Na palavra teste exitem 0 ocorrencias da letra a Na palavra reutilizacao exitem 2 ocorrencias da letra a Na palavra codigo exitem 0 ocorrencias da letra a
Execução do código:Código PHP:
def busca_letra():
contador = 0
for letra in palavra:
if letra == 'a':
contador += 1
print 'Na palavra',palavra,'exitem',contador,'ocorrencias da letra a'
palavra = 'teste'
busca_letra()
palavra = 'reutilizacao'
busca_letra()
palavra = 'codigo'
busca_letra()
Podemos ver que ambos possuem a mesma saída, mas (depois que se acostuma com as funções) o segundo exemplo é extremamente mais legivel.Código:Na palavra teste exitem 0 ocorrencias da letra a Na palavra reutilizacao exitem 2 ocorrencias da letra a Na palavra codigo exitem 0 ocorrencias da letra a
Além de tornar um código mais legível, a reutilzação de código permite que o programa seja reformulado com mais facilidade. Por exemplo, se quisermos que ao invés de buscar a letra 'a' seja buscada a letra 'c', no primeiro exemplo teríamos que alterar 3 linhas de código, já no segundo exemplo, basta alterar uma linha.
Sei que isso pode parecer pouco, mas em um programa realmente complexo isso pode ser a diferença entre alterar 4 linhas ou 52 linhas distribuídas em 10 arquivos diferentes.
Como esta é apenas uma introdução às funções não vou deixar nenhum exercício, até mesmo porque usar uma função desta forma que mostrei não é a melhor das opções.
Até mais...
[Curso de Python] O for e Outras Palavras Mais
8 de Junho de 2010, 0:00 - sem comentários aindaAntes de prosseguir leia os artigos anteriores aqui.
Olá pessoal!! Retomando os posts desse curso de Python, se é que alguém ainda lembra quem eu sou...
O For e Outras Palavras Mais
Assim como o while, o for também pode ser associado a algumas palavras que o tornam mais útil. Então aqui vamos ver como usar o for em conjunto com as instruções break e else. Como todos esses já foram explicados utilizando a estrutura while não vou aprofundar muito no funcionamento desses, vou apenas mostrar alguns exemplos de implementação e deixar alguns exercícios.
A instrução break
A instrução break, conforme visto anteriormente, é útil para interromper abruptamente um loop. Para exemplificar vamos fazer um loop que procura a primeira ocorrência de um mesmo número dentro de duas listas.
Output gerado:Código:lista1 = [1,2,3] lista2 = [7, 5, 3, 4, 1] for item1 in lista1: print 'procurando por',item1,'...' for item2 in lista2: print '\t',item1,'==',item2,'??', if item1 == item2: print ' Sim!' break else: print ' Não'
Coloquei muitos print para mostrar que o break impede que a lista2 seja percorrida totalmente.Código:procurando por 1 ... 1 == 7 ?? Não 1 == 5 ?? Não 1 == 3 ?? Não 1 == 4 ?? Não 1 == 1 ?? Sim! procurando por 2 ... 2 == 7 ?? Não 2 == 5 ?? Não 2 == 3 ?? Não 2 == 4 ?? Não 2 == 1 ?? Não procurando por 3 ... 3 == 7 ?? Não 3 == 5 ?? Não 3 == 3 ?? Sim!
A instrução else
Podemos ver que eu gerei muito output pra tornar o fluxo compreensivo além de não ter percebido que o número 2 não foi encontrado na lsita2. Com a ajuda da instrução else, podemos simplificar esse output e também detectar que o numero 2 não foi encontrado.
Output gerado:Código:lista1 = [1,2,3] lista2 = [7, 5, 3, 4, 1] for item1 in lista1: print 'procurando por',item1,':', for item2 in lista2: if item1 == item2: print 'Encontrado!' break else: print 'Não encontrado...'
ExercíciosCódigo:procurando por 1 : Encontrado! procurando por 2 : Não encontrado... procurando por 3 : Encontrado!
A título de fixação deixo alguns exercícios:
1. Dado o dicionário abaixo, faça programa que verifique qual dos alunos foi reprovado por falta. O critério de reprovação é ter mais faltado mais de 10 vezes.
2. Tendo o exemplo anterior como base, modifique o programa de forma que ele cruze os dados do dicionário de faltas com o dicionário de notas (a baixo) e informe se o aluno foi aprovado, usando o critério de faltas e a média de suas notas (maior que 6).Código:faltas = {'aluno1':2, 'aluno2':3, 'aluno3':7, 'aluno4':11, 'aluno5':0, 'aluno6':10}
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]}